1

我正在为我正在构建的应用程序使用开源消息传递 UI 库。当用户开始一个新的对话时,我希望“聊天视图”出现在键盘已经打开并且光标在文本字段上(类似于大多数现有的聊天应用程序)。有没有办法强制JSQMessagesViewController在键盘已经启动的情况下出现?

我尝试使用以下方法实现它:

self.keyboardController.textView.becomeFirstResponder()

但是,这会导致在呈现视图时键盘立即弹出......但是工具栏会滞后大约一秒钟(不是太多,但非常明显)。此外,此解决方案似乎可以像往常一样使用向下手势禁用键盘。

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

4

4 回答 4

0

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

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

    self.inputToolbar!.contentView!.textView!.becomeFirstResponder()
}
于 2015-09-25T21:12:54.617 回答
0

尝试这样做

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

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

于 2015-08-13T10:09:37.603 回答
0

我想通过单击按钮来实现,所以我添加了:

[self.inputToolbar.contentView.textView becomeFirstResponder];

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

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

    [self.inputToolbar.contentView.textView becomeFirstResponder];
}
于 2017-09-02T15:37:04.213 回答
-1

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

于 2016-05-16T05:16:11.113 回答