2012-01-25 4 views
0

일부 텍스트 필드가 있는데 textfield1 텍스트를 다른 텍스트 필드로 변경할 때 수행하고 싶습니다. 아래 내 코드. 그러나 그것은 효과가 없습니다. 이 문제를 어떻게 해결할 수 있습니까?UITextField editingChange 컨트롤 이벤트가 작동하지 않습니다.

- (IBAction)TCKimlikTextChange:(id)sender { 

[TCKimlikText addTarget:self action:@selector(yourMethod:) forControlEvents:UIControlEventEditingChanged]; 
} 

-(void)yourMethod: (UITextField*)tf_{ 

if (tf_) { 
    if (TCKimlikText.text == @"1") { 
     AdinizText.text = @"Hacer"; 
    } 
} 

} 

답변

1

코드는 매우 추상적입니다. , tf_TCKimlikTextChange은 모두 사람이 읽을 수없는 표현입니다. 변수 이름에 대해 작업해야합니다.

첫 번째 방법은 버튼 처리기라고 가정합니다. 방금 텍스트 필드에 대상 및 작업을 할당했지만 어떤 방법도 호출하지 않았습니다. 위임 프로토콜을 사용하는 경우에는 해당 조치가 필요하지 않습니다.

문제를 해결하려면 UITextField 대리자 메서드를 구현하십시오. 텍스트 필드에 위임자 (아마도 self)를 설정해야합니다. 보기 컨트롤러는 .h 파일에 <UITextFieldDelegate> 프로토콜을 명시해야합니다. 따라서, textField:shouldChangeCharactersInRange:replacementString:에 : 당신은 문자열을 비교하는 isEqualToString: 필요

if ([textField.text isEqualToString:@"1"]) { 
    displayLabel.text = @"Hacer"; 
} 

공지 사항, 간단한 ==은하지 않습니다.

+0

: textFieldDidBeginEditing : - - 을 textFieldShouldBeginEditing : shouldChangeCharactersInRange : replacementString :: –

+0

또한 내가 이미 all delegate와 를 추가합니다. 그리고 나서 "isEqualToString"방식으로 시도하지만 작동하지 않습니다. –

+0

'textField : shouldChangeCharacters ... '를 구현 했습니까? '-text'를 타이핑하면'.m' 파일에 팝업됩니다. – Mundi

0

유 대리자

- (BOOL)textFieldShouldReturn:(UITextField *)textField 
{ 
    if(textField == field1) 
     [field2 setText:field1.text]; 

    [field1 resignFirstResponder]; 
    return YES; 

} 

을 사용하여 리턴 버튼 클릭에 변경하고자하는 또는 u 너무 같은 다른 대표를 사용할 수있는 경우 :

가에 textField 무엇
+0

나는 또한 시도한다 - textFieldDidBeginEditing : 그러나 그것은 일하지 않았다, –

+0

또한이 방법은 작동하지 않는다 : S –

관련 문제