2012-02-25 5 views
0

私はなぜコードが私のために働いていないのか分かりません。 ViewController.hUITextFieldのバインド

... 
@property (nonatomic, copy) UITextField *textField; 
... 

ViewController.m

-(void)viewDidLoad 
{ 

    [self.textField addTarget:self 
          action:@selector(textIsChanged:) 
          forControlEvents:UIControlEventEditingChanged]; 

} 

-(void)textIsChanged:(id)sender; 
{ 
    NSLog(@"Changed"); 
} 

私は、TextField textIsChanged方法で何かを入力

が呼び出されることはありません。

+0

解決策の1つは、viewControllerにUITextViewDelegateプロトコルを実装することです(それをtextFieldのデリゲートにする)。しかし、まず、あなたはただ試してみることができます - (void)textIsChanged:(id)sender; viewControllerのインターフェース(.hファイル) –

+0

プロパティは 'コピー'ではなく 'retain'でなければならないと思います –

答えて

2

あなたはこのようなIBOutletとしてtextFieldを宣言する必要があります。

@property (nonatomic, retain) IBOutlet UITextField *textField; 

か、あなたはARC(自動参照カウント)を使用している場合:

@property (nonatomic, strong) IBOutlet UITextField *textField; 

とインタフェースでXIBファイルからそれをバインドしますビルダー。

+0

私は既にそれを行いましたが、[UITextInputTraits addTarget:action:forControlEvents:]:インスタンスに送られたセレクタが認識できません0x68f5ac0 – OhDoh

+3

私は専門家ではありませんが、あなたは&copy?ではなく、「保持」しているべきですか? –

+0

@TomH - 私はそれに気付かなかった。おそらく答えとして投稿するべきです。 OPの問題を解決するかもしれない。 – sch