我有一个文本字段,图像和几个按钮的视图。 我想确保键盘显示在显示视图时位于顶部 和 我想确保它在输入文本字段并提交后不会消失。
我使用viewdidload调用了[txtField becomeFirstResponder]
,键盘默认显示,但在显示视图后有一点延迟。
在我提交了我的文本字段之后,成为第一响应者也无济于事。
提前感谢您的帮助!
答案 0 :(得分:4)
在我提交文本字段后,成为第一响应者也没有帮助。
那部分毫无意义。默认情况下,除非您使用endEditing:
或resignFirstResponder
将其解除,否则文本字段不会关闭键盘。如果键盘消失了,你必须制作它就会消失。所以不要,它不会。
编辑:事实上,您的评论后来会显示答案:您已经从文本字段中连接了didEndOnExit
控件事件。那么,当用户按下完成按钮时,这会导致键盘被解除!因此,你有效地击中了自己的脸,然后抱怨有人正在打你的脸。
所以解决方案显然是不挂钩didEndOnExit
控制事件(对任何事情)。相反,只需给文本字段一个委托,并使用委托消息来了解用户正在做什么。这些都没有任何关于键盘的自动行为,因此键盘不会自动被解雇。例如,要了解用户何时输入内容,请使用textField:shouldChangeCharactersInRange:replacementString:
。要了解用户何时点击完成按钮,请使用textFieldShouldReturn:
。等等。