2011-05-14 5 views
0

의 첫번째 활성화 한 후 작동을 멈 춥니 다 내가 여기 만든 UITextField에 있습니다UITextFieldDelegate이 UITextField에

text_field = [[UITextField alloc] initWithFrame:CGRectMake(10, 8, 260, 40)]; 
text_field.delegate = [[MessageInputDelegate alloc] init]; 

위임 구현 :

@implementation MessageInputDelegate 

- (BOOL) textFieldShouldReturn: (UITextField *) text_field{ 
    [the_view5 becomeFirstResponder]; 
    the_view5->text_area.frame = CGRectMake(20, 320, 280, 40); 
    the_view5->message_label.frame = CGRectMake(0, 0, 320, 320); 
    text_field.enabled = NO; 
    text_field.text = @""; 
    return YES; 
} 

- (void) textFieldDidBeginEditing: (UITextField *) textField{ 
    printf("DID CALL EDIT METHOD\n"); 
    the_view5->text_area.frame = CGRectMake(20, 140, 280, 40); 
    the_view5->message_label.frame = CGRectMake(0, 0, 320, 140); 
} 

- (BOOL) textField: (UITextField *) textField shouldChangeCharactersInRange: (NSRange) range replacementString: (NSString *) string{ 
    if (textField.text.length >= 400 && range.length == 0){ 
     return NO; 
    } 
    return YES; 
} 

@end 

그것은 내가 텍스트 필드를 활성화하지만 처음 작동 두 번째 ...?

고마워요. 당신이 행해져 Yout MessageInputDelegate에서 text_field을 cerating하는 경우

+0

'MessageInputDelegate'에'text_field'를 만드시겠습니까? – akashivskyy

+0

아니요, 보이는 코드는 그 코드입니다. –

+0

'text_field.enabled = NO '는 용의자처럼 보입니다. –

답변

0

이 난을 닫습니다 endEditing 사용 키보드와 그것을 작동합니다.

0

, 당신은

text_field.delegate = self; 

를 사용하고 모두 UITextFields에 대한 대리자를 선언해야합니다.


전년 동기 대비 다른 클래스를 작성하는 경우, 당신은 당신의 .h 파일에 어딘가에 MessageInputDelegate 인스턴스를 선언한다 예를 들어

MessageInputDelegate *mid; 

다음

text_field.delegate = mid; 
+0

고맙습니다.하지만 제가 만든 클래스에서 델리게이트를 유지했는데 여전히 실패합니다. –

관련 문제