1

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

4

3 回答 3

2
[textField resignFirstResponder];

文档

如果您希望它在按下 enter 时消失,您将需要实现

- (BOOL)textFieldShouldReturn:(UITextField *)textField

在你的UITextFieldDelegate

于 2010-09-24T03:00:43.323 回答
1

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

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

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

于 2010-09-24T06:25:14.330 回答
0

我自己也有这个问题,我意识到上面的答案可能不是你要问的。我的猜测是,当您“说双击”(或其他事件)时,您正在将 UITextField 作为子视图添加到某些视图中。使控制器成为该子视图的代表很重要。

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

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

现在在那个控制器里面我可以实现

-(BOOL) textFieldShouldReturn:(UITxtField *)textField

它会起作用。

于 2011-01-17T19:58:52.137 回答