1

ユーザーが入力している間にテキストフィールドでラベルを埋めようとしています:

.h

@interface MainView : UIViewController <UITextFieldDelegate>

また、.m:

-(void)textViewDidChange:(UITextView *)textView
    {
        label.text = textField.text;
    }
- (void)viewDidLoad
    {
        [super viewDidLoad];
        [textField addTarget:self action:@selector(textViewDidChange:) forControlEvents:UIControlEventEditingChanged];
    }

labelストーリーボードのラベルとtextFieldテキストフィールドにリンクしました。

しかし、ViewController が読み込まれるとアプリがクラッシュします。

*キャッチされない例外 'NSInvalidArgumentException' が原因でアプリを終了します。理由: '-[UILabel addTarget:action:forControlEvents:]: 認識されないセレクターがインスタンス 0x7584ff0 に送信されました'

ここで何か助けはありますか?: )

4

2 に答える 2

3

すでに実装しているUITextFieldDelegateので、次のようにオーバーライドできますshouldChangeCharactersInRange

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
     // make sure it is the correct UITextField
     if ([textField isEqual:self.textField]) {
          // update UILabel
          self.label.text = [textField.text stringByReplacingCharactersInRange:range withString:string];
     }
     return YES;
}
于 2013-01-31T01:07:23.297 に答える