2010-04-21 84 views
1

我在我看来有两个文本字段。我使用IB做了它。我的问题是如何在输入文字后让键盘消失?

  1. 在textField1中输入文本后,我在textField2中输入文本。当我再次单击textField1时,以前的文本在textField1中消失。

  2. 在两个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。我怎样才能使它工作?

谢谢。

回答

1

对于问题1,请检查文本字段的clearsOnBeginEditing属性。

对于问题2,您可以将resignFirstResponder消息发送到文本字段。

请参阅Managing Keyboard部分中的UITextField文档。

+0

谢谢。我制定了它。 – 2010-04-21 07:59:35

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。它运作良好。但是当我从文本字段中触摸屏幕时,键盘不会消失。 谢谢。