以编程方式使键盘消失

时间:2010-09-24 02:58:12

标签: objective-c cocoa-touch keyboard uitextfield first-responder

我创建了一个文本字段,但我没有使用Interface Builder,我是在Xcode中以编程方式完成的。所以现在我需要一种程序化的方法让它重新响应第一响应者,这样当用户按下回车键时键盘就会消失。

3 个答案:

答案 0 :(得分:2)

[textField resignFirstResponder];

docs

如果你希望它在按下回车时消失,你需要实现

- (BOOL)textFieldShouldReturn:(UITextField *)textField

UITextFieldDelegate

答案 1 :(得分:1)

作为cobbal答案的补充,不要忘记将文本字段的委托设置为实现的类

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

向该类接口声明添加描述符也是一件好事。

答案 2 :(得分:0)

我有自己的这个问题,我意识到上述答案可能不是你所要求的。我的猜测是,当你说“双击”(或其他一些事件)时,你会将UITextField作为子视图添加到某个视图中。将控制器作为该子视图的代表非常重要。

-(void)handleDoubleTapGesture:(UITapGestureRecognizer *)gestureRecognizer{
     //some other code creating the textfield 
     [aTextField setDelegate:self];

在这种情况下,我使用了控制器本身。

现在在控制器内我可以实现

-(BOOL) textFieldShouldReturn:(UITxtField *)textField

它会起作用。