我的视图中有两个文本字段。我是用IB做的。我的问题是
在textField1中输入文本后,我在textField2中输入文本。当我再次单击textField1时,之前的文本在textField1中消失了。
在两个textFields中输入文本后,我需要键盘消失。但是,即使我触摸了键盘布局中的返回键,或者我触摸了文本字段外的屏幕,键盘也没有消失。
我该怎么做呢 谢谢。
- (void)viewDidLoad
{
self.title = @"Edit";
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Save" style:UIBarButtonItemStyleDone target:self action:@selector(save)];
//[nameField becomeFirstResponder];
nameField.clearsOnBeginEditing = NO; //First text field
[nameField resignFirstResponder];
//[descriptionField becomeFirstResponder];
descriptionField.clearsOnBeginEditing = NO; //second text dield
[descriptionField resignFirstResponder];
[super viewDidLoad];
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
if (textField == nameField) {
[nameField resignFirstResponder];
}
else if(textField == descriptionField){
[descriptionField resignFirstResponder];
}
return YES;
}
我以上述方式做了但键盘仍未消失。在按下返回键后输入textField1中的文本后,光标不会转到textField2。我怎样才能使它发挥作用?
谢谢。
答案 0 :(得分:1)
对于问题1,请检查文本字段的clearsOnBeginEditing
属性。
对于问题2,您可以将resignFirstResponder
消息发送到文本字段。
请参阅Managing Keyboard文档中的UITextField部分。
答案 1 :(得分:0)
我得到了结果。我的错误中的第一件事是我没有在界面中添加UITextFieldDelegate。剩下的我在代码中做了更改。
- (void)viewDidLoad {
self.title = @"Edit";
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Save" style:UIBarButtonItemStyleDone target:self action:@selector(save)];
[nameField becomeFirstResponder];
nameField.delegate = self;
descriptionField.delegate = self;
[super viewDidLoad];
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
NSLog(@"Return Key Pressed");
if (textField == nameField) {
[nameField resignFirstResponder];
[descriptionField becomeFirstResponder];
}
else if(textField == descriptionField){
[descriptionField resignFirstResponder];
}
return YES;
}
在textField1中输入文本后,如果我触摸返回,则光标将转到textFeild2。它运作良好。但是当我从文本字段触摸屏幕时,键盘不会消失。 谢谢。