2010-08-24 81 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

相關問題