以编程方式将UITextField设置为FirstResponder时,会对文本编辑产生一些奇怪的操作

Xu *_*Yin 4 uitextfield becomefirstresponder ios

我有一个带自定义键盘的UITextField,基本上就像一个计算器.我想我的键盘默认显示出来,所以我用[self.topInputTextField becomeFirstResponder];viewDidLoad,我认为这是很常见的用法.但是,它会在我的文本域中引起一些非常奇怪的操作.

当我将textfield设置为viewDidLoad中的第一个响应者时,每次完成编辑后,文本将跳转,当我单击另一个文本字段并再次单击第一个文本字段时,第一个文本字段中的文本有时会移动下来并消失,但有时不会.我觉得这很难描述,所以我为它录制了一个GIF图像.

在此输入图像描述

我肯定会[self.topInputTextField becomeFirstResponder];引起这个问题的原因是,当我对这行代码进行评论时,一切都恢复正常.这是我在评论该行后的GIF:

在此输入图像描述

这对我来说很奇怪,在2 GIF文件之间,我做的唯一改变是注释掉那行代码.我在SE上找不到任何解决方案.任何想法都将非常感激.

编辑:还有 一件事是我试图改变字体和字体大小,它们都有类似的奇怪行为.

*编辑2:**这里是我如何设置我的文本域,我没有做任何花哨的事情

在此输入图像描述

Dav*_*d P 5

尝试调用键盘viewDidAppear,此方法被调用viewDidLoad.我认为这是因为你只应该在用户看到的加载视图上调用键盘,所以如果你在视图实际出现之前调用它会导致意外行为.

  • 视图可能无法在可见之前成为响应者,因为它还不是响应者链的一部分 (2认同)
  • 为这个答案祝福你的灵魂,神秘的鸡人. (2认同)