2013-04-17 74 views
5

我有一个文本框,图像和几个按钮的视图。 我想,以确保显示的键盘在顶部时,显示 和 我想,以确保它不会消失后,我到文本字段中键入一些,并提交了看法。保持键盘始终位于顶部&可见

我叫[txtField becomeFirstResponder]与viewDidLoad中和键盘默认情况下,但有一个微小的延迟出现时显示的视图后。

另外,becomefirstresponder没有帮助后,我有我的文本字段提交。

在此先感谢您的帮助!

回答

4

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

这部分是没有意义的。默认情况下,文本字段并没有消除,除非你endEditing:驳回resignFirstResponder它的键盘。如果键盘正在消失,您必须使它消失。所以不要,也不会。

编辑:的确,您的评论后显露了答案:你已经迷上了从文本字段中didEndOnExit控制事件。那么,当用户按下完成按钮时,会导致键盘被解散!所以你有效地击中了自己的脸,然后抱怨有人在面对你。

所以解决办法很明显是不要挂钩了didEndOnExit控制事件(对任何事情)。相反,只要给文本字段一个委托并使用委托消息来了解用户正在做什么。这些没有任何关于键盘的自动行为,所以键盘不会被自动解除。例如,要了解用户何时输入,请使用textField:shouldChangeCharactersInRange:replacementString:。要了解用户何时点击完成按钮,请使用textFieldShouldReturn:。等等。

+0

确实,didEndOnExit链接到检查用户输入文本的IBAction。但是,如果我没有链接它didEndOnExit,我怎么知道用户何时完成键入并按下完成按钮? 基本上我想实现这一点:作为窗口被装载在文本框 2.用户填写,按下完成按钮或其他按钮,我把旁边的外地 3.我的代码检查 1.键盘是可见如果字符串是正确的并执行一些操作 4.同时焦点仍在文本字段中,并且键盘仍然可见 – user2292949

+0

是的,那么不要这样做。你自己正在做你正在抱怨的事情。所以,停止这样做,问题就会消失。看到我编辑的答案。 – matt

+0

谢谢,这似乎是我正在寻找的答案。 一旦我完成了我想要做的事情,我就会更新我的代码和我的条目。 关于打到自己的脸上;我现在可能会这样做一段时间,因为我只是开始IOS开发和OOP。 – user2292949