如何使用键盘呈现JSQMessagesViewController?

时间:2015-08-13 10:02:51

标签: ios objective-c swift cocoa-touch jsqmessagesviewcontroller

我正在使用open source messaging UI library来构建我正在构建的应用。当用户开始新的对话时,我希望“聊天视图”出现时键盘已经启动,光标在文本字段上(类似于大多数现有的聊天应用程序)。有没有办法强制JSQMessagesViewController出现在键盘上?

我尝试使用以下方法实现此目的:

self.keyboardController.textView.becomeFirstResponder()

然而,这导致键盘在呈现视图时立即弹出...但是工具栏将落后大约一秒钟(不是太多,但是非常明显)。此外,这个解决方案似乎禁止键盘像通常那样使用向下手势被解雇。

我有什么东西可以解决这个问题吗?或者我是否必须修改库以获得这些功能......如果是这样,我从哪里开始这样做?

4 个答案:

答案 0 :(得分:0)

尝试这样做

-(void)viewWillAppear:(BOOL)animated
{
      [super viewWillAppear:YES];
      [myTextField becomeFirstResponder];
}

- >它将重点放在myTextField上并自动打开键盘。希望它可以帮助你。

答案 1 :(得分:0)

这对我有用。它很快,但应该很容易翻译。

override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(false)

    self.inputToolbar!.contentView!.textView!.becomeFirstResponder()
}

答案 2 :(得分:0)

我想通过点击按钮这样做,所以我添加了:

[self.inputToolbar.contentView.textView becomeFirstResponder];

如果您在加载时想要它们,请添加:

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];

    [self.inputToolbar.contentView.textView becomeFirstResponder];
}

答案 3 :(得分:-1)

这可能为时已晚,但在我的情况下,我忘了拨打super.viewDidAppear(animated),导致文字视图落后于键盘。一旦我加了那个电话,问题就消失了。