当按下“完成”时,我知道textViewDidEndEditing:
被调用。它有时也被其他行动称为。
我想要一个仅在按下“完成”时调用的方法 - 专门。我一直在阅读代码片段,但没有看到有人这样做。顺便说一下,我没有使用任何XIB作为我的观点。
这可能吗?
答案 0 :(得分:14)
只要按下Return键,UITextField的实例就会向其委托发送textFieldShouldReturn:
消息。如果您希望控制器收到此消息,请让它向文本字段发送setDelegate:
消息,将self
作为参数传递(或将文本字段的委托出口连接到Interface Builder中的控制器)和在您的控制器类中实现以下方法:
- (BOOL)textFieldShouldReturn:(UITextField *)textField;
有关详细信息,请参阅UITextFieldDelegate
协议的文档。
答案 1 :(得分:1)
首先,当用户点击DONE按钮时,不会调用textFieldDidEndEditing。 在您编辑后触摸任何内容时立即调用。
如果有一个独占按钮'完成',您可以创建一个完成键作为UIBarButtonItem,并编写一个像
这样的IBAction- (IBAction) doneClicked:(id)sender
以下行将完成键指定为返回键。
textField.returnKeyType = UIReturnKeyDone;
您可以检查TextFieldDidEndEditing中是否按下了完成键...您也可以使用其他按钮,然后返回它。