我正在尝试重新创建类似于safari中使用的弹出键盘的东西.
我可以通过在我的视图上放置一个工具栏和相应的按钮来直观地再现它,但是一旦用户触摸完成按钮,我就无法找出解除键盘的任何方法.
您需要记住几件事.开发人员忘记设置的#1部分是textField 的委托.
如果您使用的是Interface Builder,则必须记住需要将textField的委托设置为文件所有者.
如果您不使用Interface Builder,请确保将textfield的委托设置为self.我还包括returnType.例如,如果textField被称为gameField:
gameField.delegate = self; gameField.returnKeyType = UIReturnKeyDone;
您还必须为ViewController 实现UITextFieldDelegate.
@interface YourViewController : UIViewController
最后你需要使用textFieldShouldReturn方法并调用[textField resignFirstResponder]
-(BOOL) textFieldShouldReturn:(UITextField*) textField { [textField resignFirstResponder]; return YES; }
您的所有textField都将使用相同的方法,因此您只需要进行一次此设置.只要为textField设置了委托,就为接口实现了UITextFieldDelegate,你可以添加textFieldShouldReturn方法并调用resignFirstResponder你的集合.
你有没有尝试过:
[viewReceivingKeys resignFirstResponder];
viewReceivingKeys
接收文本输入的UIView 在哪里?
如果您在Interface Builder中构建自己的视图,请将视图控制器设置为文本字段的委托,并在视图控制器中实现textFieldShouldReturn:from UITextFieldDelegate.
- (BOOL)textFieldShouldReturn:(UITextField *)theTextField { NSLog(@"%@ textFieldShouldReturn", [self class]); [theTextField resignFirstResponder]; // do stuff with the text NSLog(@"text = %@", [theTextField text]); return YES; }
UITextFieldDelegate textFieldShouldReturn:在iphone可可文档中