2011-05-14 15 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 

それは私がテキストフィールドをアクティブではなく、初めての作品2回目...?

ありがとうございます。

+0

あなたの 'MessageInputDelegate'に' text_field'を作成していますか? – akashivskyy

+0

いいえ、表示されるコードは、そのコードです。 –

+0

'text_field.enabled = NO'は容疑者のようです。 –

答えて

0

、あなたの.hファイルのどこかにMessageInputDelegateインスタンスを宣言する必要があります私は閉じるためにendEditing使用キーボードとそれが動作します。

0

あなたはyoutはMessageInputDelegateからtext_fieldをceratingしている場合は、

text_field.delegate = self; 

を使用して、両方のUITextFieldsのためのデリゲートを宣言する必要があります。


前年比+他のクラスからそれを作成した場合、あなたは例えば

MessageInputDelegate *mid; 

、その後

text_field.delegate = mid; 
+0

ありがとう、私はそれを作ったクラスでデリゲートを保持し、それでも失敗します。 –

関連する問題