5

我有一个文本字段、一个图像和几个按钮的视图。我想确保显示键盘并在显示视图时位于顶部,并且我想确保在我在文本字段中输入内容并提交后它不会消失。

[txtField becomeFirstResponder]用 viewdidload 调用了键盘,默认情况下会出现键盘,但在显示视图后会有一点延迟。

在我提交了我的文本字段后,becomefirstresponder 也没有帮助。

在此先感谢您的帮助!

4

1 回答 1

4

在我提交了我的文本字段后,becomefirstresponder 也没有帮助。

那部分没有意义。默认情况下,文本字段不会关闭键盘,除非endEditing:使用或关闭它resignFirstResponder如果键盘正在消失,您必须让它消失。所以不要,也不会。

didEndOnExit编辑:确实,您的评论后来揭示了答案:您已经从文本字段中连接了控制事件。好吧,当用户按下完成按钮时,这会导致键盘被关闭!因此,您实际上是在打自己的脸,然后抱怨有人在打您的脸。

因此,显然,解决方案是不要didEndOnExit将控制事件(与任何东西)挂钩。相反,只需给文本字段一个委托并使用委托消息来了解用户在做什么。这些都没有关于键盘的任何自动行为,因此键盘不会自动关闭。例如,要了解用户何时键入,请使用textField:shouldChangeCharactersInRange:replacementString:. 要了解用户何时点击完成按钮,请使用textFieldShouldReturn:. 等等。

于 2013-04-18T00:16:38.517 回答