我正在使用open source messaging UI library来构建我正在构建的应用。当用户开始新的对话时,我希望“聊天视图”出现时键盘已经启动,光标在文本字段上(类似于大多数现有的聊天应用程序)。有没有办法强制JSQMessagesViewController
出现在键盘上?
我尝试使用以下方法实现此目的:
self.keyboardController.textView.becomeFirstResponder()
然而,这导致键盘在呈现视图时立即弹出...但是工具栏将落后大约一秒钟(不是太多,但是非常明显)。此外,这个解决方案似乎禁止键盘像通常那样使用向下手势被解雇。
我有什么东西可以解决这个问题吗?或者我是否必须修改库以获得这些功能......如果是这样,我从哪里开始这样做?
答案 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)
,导致文字视图落后于键盘。一旦我加了那个电话,问题就消失了。