4

我一直想弄清楚如何让UIKeyboard上的下一个按钮来加载下一个UITextField ..我有两个单元格,名称和电子邮件我想从名称到使用Next按钮发送电子邮件。UIKeyboard下一个按钮不会去下一个UITextField

到目前为止,我还添加

//.h 
<UITextFieldDelegate> 

那么我做这个尝试,并通过从名称的用户电子邮件

//.m 
- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 

    customerNameTextField.delegate = self; 
    customerEmailTextField.delegate = self; 
//... 

- (BOOL)textFieldShouldReturn:(UITextField *)textField { 
    if (![customerNameTextField.text isEqualToString:@""]) { 
     [customerNameTextField resignFirstResponder]; 
     [customerEmailTextField becomeFirstResponder]; 
    } else if (textField == customerEmailTextField) { 
     // here you can define what happens 
     // when user presses return on the email field 
     // send request 
    } 
    return YES; 
} 

它进入第一,如果statment,然后删除键盘从屏幕使用resignFirstResponder,但它不会加载新的键盘使用becomeFirstResponder ..任何帮助解决这个问题将非常apprecaited。

+0

可以肯定的说customerEmailTextField不是零? – Alexander 2013-02-19 07:57:04

+0

我必须改变if语句的第二部分..但是我不太清楚你所指的是什么? – HurkNburkS 2013-02-19 08:01:26

+0

如果customerEmailTextField为零,您的代码[customerEmailTextField becomeFirstResponder]将不会明显工作... – Alexander 2013-02-19 08:02:56

回答

11

这会从一个文本框下一个文本框...

-(BOOL)textFieldShouldReturn:(UITextField *)textField 
{ 
    if (textField == ist) { 
     [second becomeFirstResponder]; 
    } 
    else if (textField == second) { 
     [third becomeFirstResponder]; 
    } 

    else{ 
     [textField resignFirstResponder]; 
    } 
    return YES; 
} 
+0

这一次,我改变了返回YES返回NO ...不知道为什么...但只是让每个人都知道。 – HurkNburkS 2013-02-19 19:10:45

+1

谢谢Sudha .....这种方法给我解决方案.. – 2014-01-18 11:08:11