7

我只是无法使“完成”按钮退出键盘。

我在我的 controller.h 文件中使用了它

- (IBAction)textFieldDoneEditing:(id)sender;

这适用于我的 controller.m 文件

- (IBAction)textFieldDoneEditing:(id)sender {
  [sender resignFirstResponer];
}

我在连接 .xib 部分时搞混了。

4

3 回答 3

23

使控制器成为 IB 中的 UITextField/UITextView 或类似代码的委托textField.delegate = self;

已编辑:为此,您需要将控制器声明为 UITextFieldDelegate/UITextViewDelegate 的代表

@interface Controller : <UITextFieldDelegate> { ...

,然后重写方法:

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

对于 UITextField 和

-(BOOL)textViewShouldEndEditing:(UITextView *)textView{
    [textView resignFirstResponder];
    return YES;
}

对于 UITextView

于 2012-04-06T05:13:38.090 回答
1

在您的 .xib 中,右键单击您的文本视图,拖动到“文件的所有者”,然后单击“委托”。现在应该工作吗?

编辑:哎呀,对不起,我是个白痴,照其他人说的做。如果您不知道如何在代码中设置委托,您可以在 IB 中按照我的方式进行。

于 2012-04-06T05:14:56.457 回答
0

让我做我的第一个贡献:如果您有多个文本字段,请将它们分组到 @property(强,非原子)

*。H

@property (strong, nonatomic) IBOutletCollection(UITextField) NSArray *collectingData;

*.m

-(BOOL)textFieldShouldReturn:(UITextField *)boxes
    {
        for (UITextField *boxes in collectingData) {
        [boxes resignFirstResponder];
    }
    return YES;

}
于 2012-04-19T08:27:06.383 回答