2010-08-24 4 views
2

저는 uitextfield에 약간의 문제가 있습니다. 보기에서 두 개를 사용하고 두 번째 필드에 무언가를 쓸 때 첫 번째 문자열도 변경됩니다. 여기 내 코드하나의보기에 여러 개의 UITextField가 있습니다.

-(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 메서드가 호출되면 각 필드에 대한 작업을 구분해야합니다. '에 textField가 위임 i'e에 전달 목적 여기서

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

    [textField resignFirstResponder]; 
} 

:

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

를 상기 textFieldShouldReturn 방법 태그 확인 :

텍스트 필드 모두에 태그를 설정 네가 도청 한 것이 돌아왔다. 그러므로 IBOutlet 객체가 아닌 그것을 사용하십시오.

텍스트 필드 textField 및 textField2의 이름을 매우 나쁜 코딩 방식으로 지정하지 마십시오. 행운을 빕니다

+1

이 문제가 해결 될 것을 잘 좋은,하지만 난 나쁜 코딩 관행을 의미하는 'userNameTextFiled'와 같은 개체 이름은 직관적해야한다는 것입니다 등 'passwordTextFiled'그 덕분에 비록 찾을 수 있도록 심지어 누군가 다른 사람이 코드를 보거나 (또는 ​​심지어 1 년 후 그것을 보더라도) 그들은 무슨 일이 일어나고 있는지 이해합니다. 그래서 '텍스트'라고 이름을 짓는 것은 위대한 것이 아니 었습니다. 죄송합니다. 제가 강의실에서 당신을 괴롭 히고 있습니다. – lukya

0

IBOutlets과 같은 소리가 동일한 개체를 가리킬 수도 있습니다. Interface Builder에서 연결을 다시 확인하십시오.

+0

는 – alecnash

관련 문제