经历过这样的认真...
...我有多个TextFields
和一些TextViews
。是否有办法让所有文本字段都有批处理或组关闭第一响应者?我需要为每个领域制作方法吗?也许我忽略了那个链接中的某些东西?
也许我可以遵循这样的事情:
后者会有意义吗?提前谢谢。
= - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = -
我想通了......
Controller.h
@interface Controller : UIViewController <UITextFieldDelegate> {
IBOutlet UITextField *clickedDone;
}
@property (nonatomic, retain) IBOutlet UITextField *clickedDone;
Controller.m
#import "Controller.h"
@implementation Controller
@synthesize clickedDone;
- (void)viewDidLoad
{
[super viewDidLoad];
[clickedDone setDelegate:self];
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return YES;
}
答案 0 :(得分:30)
视图中有一个endEditing:
方法可供您使用。文档说
使视图(或其中一个嵌入的文本字段)重新签署第一个响应者状态。
在视图控制器中,您只需致电:
[[self view] endEditing:YES];
答案 1 :(得分:4)
clickedDone.returnKeyType = UIReturnKeyDone; // in viewDidLoad
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
return YES;
}
答案 2 :(得分:2)
现在非常容易。您可以根据您的使用情况采用不同的方法。在我的例子中,我在UITableViewController中有多个文本字段。我做的是这个:
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[self.view endEditing:YES];
}
答案 3 :(得分:1)
最佳答案是:
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
return YES;
}