关闭UITextField上的键盘

24

我是一个正在开发iOS设备的新手。我在InterfaceBuilder中插入了一个UITextField,并使用代码进行分配:


@interface ComposeViewController : UIViewController {
 id <ComposeViewControllerDelegate> delegate;
 IBOutlet UITextField *notificationTitle;
}
我如何允许在用户按下“返回”键时关闭键盘?
4个回答

46

将UITextField的代理设置为您的ViewController,添加File's Owner和UITextField之间的引用outlet,然后实现此方法:

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
   if (textField == yourTextField) {
       [textField resignFirstResponder];
   }
   return NO;
}

2
如果这不是你的文本框,我们应该返回 YES 吗?对于其他字段,我们应该获得默认行为,因为提问者没有指定任何特殊操作。 - Andrew

23

继承UITextFieldDelegate协议

在viewDidLoad方法中设置:

yourTextField.delegate = self

实现以下委托方法:

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{ 
   [yourTextField resignFirstResponder];
   return NO;
}


2
请记住,在您的类头文件中未设置符合<UITextFieldDelegate>协议时,yourTextField.delegate = self会在XCode中生成警告。 - Julian

1
继承 UITextFieldDelegate 协议并实现 textFieldShouldReturn: 方法,这样你就可以捕获 "return" 事件。
textFieldShouldReturn 方法中写入 [notificationTitle resignFirstResponder];

0

在事件Did End on Exit(UIControlEventEditingDidEndOnExit)中添加一个动作目标,在目标函数中使用resignFirstResponder从文本字段中删除第一响应者。 添加动作目标

注意: 1. Nib --- 给事件Did End on Exit添加动作 2. 在代码中将目标动作添加到事件UIControlEventEditingDidEndOnExit。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接