2010-08-24 62 views
2

我有一个uitextfield问题。我在视图中使用其中的两个,当我向第二个字段写入内容时,第一个字符串也会被更改。 这里是我的代码一个视图上有多个UITextFields

-(BOOL)textFieldShouldReturn:(UITextField *)textField{ 

textString = textField.text; 
NSLog(@"the string1 %@",textString); 
[textField resignFirstResponder]; 


textString2 = textField2.text; 
NSLog(@"the string2 %@",textString2); 
[textField2 resignFirstResponder]; 

return YES;} 

所以我需要一些帮助。

回答

11

您的textFieldShouldReturn方法被两个字段调用,因此您需要区分每个字段的操作。

设置标签到两个文本字段:

myTextField1.tag = 100; 
myTextField2.tag = 101; 

,并检查在textFieldShouldReturn方法标签:

-(BOOL)textFieldShouldReturn:(UITextField *)textField 
{ 
    if(textField.tag == 100) 
    { 
     textString = textField.text; 
    } 
    else if(textField.tag == 101) 
    { 
     textString2 = textField.text; 
    } 

    [textField resignFirstResponder]; 
} 

这里文本框是传递给委托i'e对象”你已经挖掘的那个返回。所以使用它而不是你的IBOutlet对象。

请避免命名您的文本字段textField和textField2是一种非常糟糕的编码习惯。

好运

+1

好,你的问题是解决了,但我的意思不好的编码的做法是,像“userNameTextFiled”对象名应该是直观的,“passwordTextFiled”等,让即使是别人看你的代码(或者即使你在一年后看到它),他们也知道发生了什么。所以我会说,命名它'文字',因为你做的也不是那么好......对不起,如果我正在用演讲来扰乱你.. – lukya 2010-08-24 07:22:32

0

听起来像您的IBOutlets可能指向同一个对象。在Interface Builder中重新检查你的连接。

+0

发现它虽然感谢以及 – alecnash 2010-08-24 06:54:07

相关问题