我有一个我在它上面创建UIViewController
的额外的小UIView
东西(子视图)。当我单击一个按钮时,此视图将悬停在屏幕中央。问题是我有一个UITextField
额外的UIView
,我似乎无法让返回键工作。
虽然我将我设置IBAction
为文本字段的事件“编辑确实结束”,但当我单击返回键时,IBAction
它不会运行。
我究竟做错了什么?
确保 UITextFieldDelegate 在界面
例如,您只需设置您的代表 :-yourtextfile.delegate=self;
并且不要忘记将委托方法添加到 .h 文件中
@interface contacts_detailView : UIViewController<UITextFieldDelegate>
然后你委托textFieldDidEndEditing
- (void)textFieldDidEndEditing:(UITextField *)textField
{
//your new view apear code here
[textField resignFirstResponder];
}
单击“返回”不会触发“编辑结束”事件。只有当您在 UITextField 上调用 resignFirstResponder 时,您才会看到触发的事件。
您应该做的是将您的 UIViewController 设置为 UITextField 的委托并实现该方法
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
return YES;
}
首先,将 TextField 委托给文件的所有者,如下所示:
yourtextField.delegate = self
在你的 viewDidLoad 中。
然后将其添加到视图控制器
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
return YES;
}
它应该工作。
无需为键盘返回编写更多代码。请在您的 .m 文件中写入,它适用于任意数量的文本字段,无需为不同的文本字段再次写入。
<UItextfieldDelegate>
在您的 .h 文件中使用。然后在 nib 文件中与文件所有者进行连接。
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[self.view endEditing:YES];
return YES;
}