4

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

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

在此处输入图像描述

我确定[self.topInputTextField becomeFirstResponder];导致该问题的原因是,当我将那行代码注释掉时,一切都恢复正常。这是我注释掉该行后的 GIF:

在此处输入图像描述

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

编辑: 另外一件事是我尝试更改字体和字体大小,它们都有类似的奇怪行为。

*编辑2:**这是我设置文本字段的方式,我没有做任何花哨的事情

在此处输入图像描述

4

2 回答 2

5

尝试调用键盘viewDidAppear,之后调用此方法viewDidLoad。我认为这是因为您应该只在已向用户显示的加载视图上调用键盘,因此如果您在视图实际出现之前调用它,则会导致意外行为。

于 2014-02-20T07:00:32.137 回答
4

viewDidLoad 调用这个还为时过早,UI 还没有确定你的屏幕尺寸,甚至你的设备的方向。它还不是真正的 UI... 在 willAppearAnimated 中尝试:..

于 2014-02-20T06:48:03.257 回答