如何解除多个文本字段的所有键盘?

问题描述:

我在一个视图控制器中有三个文本字段,并且当我执行解除所有三个文本字段的键盘的方法时,视图控制器不出来。如何解除多个文本字段的所有键盘?

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    self.namesuite.delegate = self; 
    self.createpassword.delegate = self; 
    self.createname.delegate = self; 
    // Do any additional setup after loading the view. 
} 

我也有textFieldShouldReturn函数。

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

这是我的按钮功能,可以将我发送到具有文本字段的视图控制器。

- (IBAction)createaccount:(id)sender 
{ 
    [self performSegueWithIdentifier:@"thirdsegue" sender:sender]; 
} 
+0

调试确定textFieldShouldReturn函数是否在点击键盘上返回时调用? – HoanNguyen

+0

确保你确认了UITextFieldDelegate和UITextInputDelegate协议 – MrHaze

+0

你是什么意思的“视图控制器不出来”? – rmaddy

这将有所帮助。试试这个:

[self.view endEditing:YES]; 

希望这有助于.. :)

+0

谁冷落了你能解释一下原因吗? – Rashad

+0

我有几个textField,就像其中的10个。辞职的第一反应者是一大痛苦。这一班轮船为我节省了几个小时的编码。谢谢拉沙德。 – Alix

+0

@Alix>欢迎光临。很高兴听到.. :) – Rashad

尝试:

-(BOOL)textFieldShouldReturn:(UITextField *)textField 
{ 
    [self.namesuite resignFirstResponder]; 
    [self.createpassword resignFirstResponder]; 
    [self.createname resignFirstResponder]; 

    return YES; 
} 

-(BOOL)textFieldShouldReturn:(UITextField *)textField 
{ 
    if (textField == self.namesuite) 
    { 
     [self.namesuite resignFirstResponder]; 
    } 
    else if (textField == self.createpassword) 
    { 
     [self.createpassword resignFirstResponder]; 
    } 
    else if (textField == self.createname) 
    { 
     [self.createname resignFirstResponder]; 
    } 

return YES; 
} 
+0

我已经尝试过两次,它仍然不会消失,当我点击返回。 ( – user3462406

+0

)向我们展示您的额外代码以推送下一个视图。它在哪里? –

+0

只是发布了它 – user3462406

你应该尝试this control (TPKeyboardAvoiding)和得到的辞职和滚动乘坐问题。它是一个通用解决方案