我无法按“完成”按钮退出键盘。
我在我的controller.h文件中使用了这个
- (IBAction)textFieldDoneEditing:(id)sender;
这是我的controller.m文件
- (IBAction)textFieldDoneEditing:(id)sender {
[sender resignFirstResponer];
}
我把.xib部分连接起来了。
答案 0 :(得分:23)
使控制器成为IB中UITextField / UITextView的委托,或者来自textField.delegate = self;
Editted: 为此,您需要将控制器声明为UITextFieldDelegate / UITextViewDelegate的委托
@interface Controller : <UITextFieldDelegate> { ...
,然后覆盖方法:
-(BOOL)textFieldShouldReturn:(UITextField *)textField{
[textField resignFirstResponder];
return YES;
}
表示UITextField和
-(BOOL)textViewShouldEndEditing:(UITextView *)textView{
[textView resignFirstResponder];
return YES;
}
用于UITextView
答案 1 :(得分:1)
在.xib中,右键单击文本视图,拖动到“文件所有者”,然后单击“委托”。现在应该工作吗?
编辑:哎呀,对不起,我是个白痴,做其他人说的话。如果您不知道如何在代码中设置委托,您可以在IB中执行此操作。答案 2 :(得分:0)
让我做出我的第一个贡献: 如果您有多个文本字段,请将它们分组为@property(强,非原子)
*的.h
@property (strong, nonatomic) IBOutletCollection(UITextField) NSArray *collectingData;
*。米
-(BOOL)textFieldShouldReturn:(UITextField *)boxes
{
for (UITextField *boxes in collectingData) {
[boxes resignFirstResponder];
}
return YES;
}