3

我无法调用 textFieldShouldEndEditing。我已经在界面生成器中重新创建了链接并尝试过,但似乎没有任何效果。知道为什么不调用它吗?

编辑

 -(BOOL)textFieldShouldEndEditing:(UITextField *)textField
 {
     NSLog(@"Done editing...");
     [textField resignFirstResponder];
      return YES;
 }
4

5 回答 5

1

你需要代言人!

尝试在你的 .h 中添加这个<UITextFieldDelegate>

在你的 .m

_yourTextField.delegate = self.

有用。

于 2012-11-23T13:32:53.890 回答
1

试试这个代码。

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
 [Self.view EndEditing:YES];
 return YES;    
}

也使用 _myTextField.delegate = self; 在你的 ViewDidLoad

在您的 .h 文件中,<UITextFieldDelegate>在您的班级名称之后添加。

于 2012-11-23T13:39:10.480 回答
0

你可以试试这段代码...

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

我希望这能帮到您。

快乐编码。

于 2012-11-23T13:30:19.593 回答
0

您应该将 textField 的委托设置为您实现的类textFieldShouldEndEditing:

你可以通过两种方式做到这一点:

首先,在 InterfaceBuilder 中,从组件中按住 ctrl 并拖动到 viewController,然后选择“delegate”。

或者,在viewDidLoad类中,添加以下行:

_myTextField.delegate = self;

对于这两种方式,在你的 .h 文件中,在<UITextFieldDelegate>你的类名之后添加。

于 2012-11-23T13:33:06.033 回答
0

只是为了好玩,如果你想真正花哨,你可以让键盘在用户触摸屏幕上的任何地方时消失。在 ViewDidLoad 中添加此代码,它将起作用。

也阅读这个 Stackoverflow 链接 -关闭 iphone 键盘

- (void)viewDidLoad
{

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] 
                                   initWithTarget:self
                                   action:@selector(dismissKeyboard)];

    [self.view addGestureRecognizer:tap];

}

-(void)dismissKeyboard 
{
//here text1 is your custom UITextField
    [text1 resignFirstResponder];
}
于 2012-11-23T14:53:41.363 回答