我的iphone应用程序中有一个文本输入框,当你在模拟器中触摸它时,键盘弹出。但是没有办法摆脱它.其他网页给出了解决方案,但没有解释为什么他们应该工作,他们不为我工作.一个说,使文本框的委托你的uiview,然后调用resignfirstresponder的对象,但它从来没有被调用.任何建议?谁能解释一下到底发生了什么?如果我知道设计模式是什么的话,我自己也能搞清楚......。
也许我应该放一个 "go "按钮,这样我就可以把焦点从文本框上移开了?
一种方法是将一个对象设置为文本字段的委托人,然后执行
- (BOOL)textFieldShouldReturn:(UITextField *)textField
其中你叫 [textField resignFirstResponder]
当他们按下returngodone按钮时,这将导致键盘消失(无论你将右下角的键盘键设置为什么)。
请看 UITextFieldDelegate 参考文献以获取更多信息。
要删除键盘,你可以使用TextField Delegate。
要使用这个功能,请按照以下步骤进行... 1. 在你的viewController.H中,你可以使用TextField Delegate。h 像这样添加委托声明。
@interface ViewController : UIViewController <UITextFieldDelegate>
{ }
2. 在你的viewController中。m 调用此方法。 - (BOOL)textFieldShouldReturn:(UITextField *)textField
3. 然后写一段这样的代码。 - (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return YES;
}
4. 最后一步是设置textField的delegate。 - (void)viewDidLoad {
[super viewDidLoad];
self.textField.delegate = self;
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField
在你的委托人中,当返回按钮被按下时,就会被调用。
你要调用 [textField resignFirstResponder]
而后返回 YES
. 这样应该就可以了。同时确保委托人的设置。如果有疑问,添加一个中断点或 NSLog
并进行验证。
您可以简单地输入以下内容。
textfield.endEditing(true)
Where textfield
是你的名字 UITextField
.