2013-05-11 2 views
2

을위한 시작 : Change UITextField background when editing begins변경의 UITextField 배경은 그래서 얼마 전에이 스레드를 발견 여러 필드

상단 대답은 사용자가이를 편집 할 때에 textField의 배경 이미지를 변경하기위한 훌륭한 자원이다. 그러나, 내 문제는 어떻게 여러 텍스트 필드를 사용하여 이것을 사용할 수 있습니까?

특히 (내 앱의 경우) 로그인 및 비밀번호 입력란이 있습니다. 아래에 게시 할 코드를 사용하면 사용자가 처음 터치 할 때 이미지를 올바르게 변경하는 첫 번째 텍스트 필드를 얻을 수 있습니다. 그러나 사용자가 다음 텍스트 필드 나 키보드의 "다음"옵션을 누르면 다음 필드를 찾을 수 없습니다. "textFieldShouldBeginEditing"과 "ending"인스턴스를 하나만 가질 수 있으므로 같은 섹션 아래의 두 필드에 대한 이미지 변경 코드를 설정해야합니다. 그러나이 작업을 수행하면 첫 번째 입력란을 두드 리면 내 입력란이 변경되고 두 번째 입력란을 탭하면 두 입력란이 모두 복원됩니다.

이 훌륭한 커뮤니티에 대한 의견이 있으십니까? 당신은 당신이 textFieldShouldReturn에 그랬던 것처럼, 대상이되는 텍스트 필드 확인해야합니다, 그 각각의 방법에

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { 
    _userNameTextField.background = [UIImage imageNamed:@"[email protected]"]; 
    return YES; 
    _passwordTextField.background = [UIImage imageNamed:@"[email protected]"]; 
    return YES; 
} 

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField 
{ 
    _userNameTextField.background = [UIImage imageNamed:@"[email protected]"]; 
    return YES; 
    _passwordTextField.background = [UIImage imageNamed:@"[email protected]"]; 
    return YES; 
} 

- (BOOL) textFieldShouldReturn:(UITextField *)textField { 
    NSLog(@"textFieldShouldReturn"); 
    if (textField == _userNameTextField) { 
     [_passwordTextField becomeFirstResponder]; 
    } else if (textField == _passwordTextField) { 
     [_passwordTextField resignFirstResponder]; 
    } 

    return YES; 

} 

답변

2

: 여기

는 일부 코드의

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField 
{ 
    if (textField == _userNameTextField) { 
     _userNameTextField.background = [UIImage imageNamed:@"[email protected]"]; 
    } else if (textField == _passwordTextField) { 
     _passwordTextField.background = [UIImage imageNamed:@"[email protected]]; 
    } 
    return YES; 
}