我在iphone应用程序中有一个文本输入框,当您在模拟器中触摸它时,弹出键盘。但是没有办法摆脱它。 其他网页提供的解决方案,没有解释他们为什么应该工作,并且他们不适合我。 一个说让文本框的委托您的uiview然后调用resignfirstresponder对象,但它永远不会被调用。 有什么建议吗?任何人都可以解释实际发生的事情吗?如果我知道设计范例是什么,我可以自己弄清楚...如何使键盘在iPhone模拟器中消失
也许我应该只是放一个“去”按钮,所以我有一些东西让焦点远离文本字段?
我在iphone应用程序中有一个文本输入框,当您在模拟器中触摸它时,弹出键盘。但是没有办法摆脱它。 其他网页提供的解决方案,没有解释他们为什么应该工作,并且他们不适合我。 一个说让文本框的委托您的uiview然后调用resignfirstresponder对象,但它永远不会被调用。 有什么建议吗?任何人都可以解释实际发生的事情吗?如果我知道设计范例是什么,我可以自己弄清楚...如何使键盘在iPhone模拟器中消失
也许我应该只是放一个“去”按钮,所以我有一些东西让焦点远离文本字段?
一种方式做到这一点是设置一个对象作为代表到文本字段,并落实
- (BOOL)textFieldShouldReturn:(UITextField *)textField
在你打电话[textField resignFirstResponder]
这将导致键盘的时候,他们推到消失返回/去/完成按钮(无论您设置右下角的键盘键)。
有关更多信息,请参阅UITextFieldDelegate参考。
- (BOOL)textFieldShouldReturn:(UITextField *)textField
在按下返回按钮时调用委托。
您想拨打[textField resignFirstResponder]
,然后返回YES
。这应该够了吧。还要确保代表已设置。如果有疑问,请添加一个断点或NSLog
并进行验证。
要解雇键盘,您可以使用TextField委托。
要使用此步骤,请按照下列步骤操作...
1.在您的viewController中。 h添加这样的委托声明:
@interface ViewController : UIViewController <UITextFieldDelegate>
{
}
2.在你的viewController。
米调用此方法:
- (BOOL)textFieldShouldReturn:(UITextField *)textField
3.然后写这样的代码:
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return YES;
}
4.最后一步是设置TextField的委托:
- (void)viewDidLoad {
[super viewDidLoad];
self.textField.delegate = self;
}
当第一次开始了,我发现[“您的第一个iOS应用程序“教程](http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhone101/Articles/00_Introduction.html)是有帮助的。有关此答案的更多信息,请参见[“实现视图控制器”]中的“文本字段的委托”小节(http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhone101/文章/ 06_ImplementingController.html)。 – sage 2010-12-29 04:16:14
够简单,但为什么这不是默认行为?尽管如此,这个工程实现了上面的接口,并将IB中的'委托'连接连接到文件的所有者。 – Bobby 2011-09-01 22:16:50