Ios 如何在键盘已打开的情况下显示JSQMessagesViewController?

Ios 如何在键盘已打开的情况下显示JSQMessagesViewController?,ios,objective-c,swift,cocoa-touch,jsqmessagesviewcontroller,Ios,Objective C,Swift,Cocoa Touch,Jsqmessagesviewcontroller,我正在为我正在构建的应用程序使用。当用户开始一个新的对话时,我希望“聊天视图”显示,键盘已经打开,光标在文本字段上(类似于大多数现有的聊天应用程序)。有没有办法在键盘已经打开的情况下强制显示jsqMessageViewController 我尝试使用以下方法实现此功能: self.keyboardController.textView.becomeFirstResponder() 然而,这导致在显示视图时键盘立即弹出。。。然而,工具栏将落后大约一秒钟(不是太多,但非常明显)。此外,这种解决方案

我正在为我正在构建的应用程序使用。当用户开始一个新的对话时,我希望“聊天视图”显示,键盘已经打开,光标在文本字段上(类似于大多数现有的聊天应用程序)。有没有办法在键盘已经打开的情况下强制显示
jsqMessageViewController

我尝试使用以下方法实现此功能:

self.keyboardController.textView.becomeFirstResponder()
然而,这导致在显示视图时键盘立即弹出。。。然而,工具栏将落后大约一秒钟(不是太多,但非常明显)。此外,这种解决方案似乎可以防止键盘像正常情况下那样向下移动

有什么我遗漏的东西可以解决这个问题吗?或者我必须修改库才能获得这一点功能。。。如果是这样,我从哪里开始做

试着这样做

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

-->它将聚焦于myTextField并自动打开键盘。希望它能对你有所帮助。

这对我很有用。它是swift格式的,但应该很容易翻译

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

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

这可能太晚了,但在我的例子中,我忘记调用super.viewdide(动画),这导致文本视图落后于键盘。一旦我添加了那个电话,问题就消失了。

我想通过点击按钮来解决这个问题,所以我添加了:

[self.inputToolbar.contentView.textView becomeFirstResponder];
如果您希望在加载时添加:

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

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

谢谢你的回答,但我刚刚尝试了这个,它遇到了与放置完全相同的问题。becomeFirstResponder在viewDidLoad函数->textField中滞后,并通过向下手势抑制键盘被解除。这对你有效,因为textField不落后于即将出现的键盘?因为对我来说,这与我的解决方案和Er的解决方案完全相同。下面是Kukadiya。它导致了文本字段一起弹出,而不是在键盘后面出现文本字段。仍然有短暂的延迟,但他们同时到达。这是我对问题的回答。我点击了“添加另一个答案”。