2011-03-01 15 views
0

私は目的Cに新しく、次の行に問題があります。エラーは次のとおりです: "addTarget;の引数3を渡す; action:forControlEvents: '整数をポインタなしでキャストします。 wierdのことは、私は警告を取得し、IPAD上ですべて正常に動作しますが、シミュレータでは時々動作し、それ以外では動作しません。私は、tableviewcellの中にテキストフィールドを持っています。ユーザーがタイプしたものをタイプすると、その変数に変数が送られます。ここでエラー目的C forControlEvents

[textField addTarget:self action:@selector(setFilterCriteria:) forControlEvents:UITextFieldTextDidChangeNotification]; 

はIBActionです:

- (IBAction)setFilterCriteria:(id)sender { 
    UITextField *senderTextField = (UITextField *)sender; 
    appDelegate.setFilterCriteria = senderTextField.text; 
} 

答えて

0

あなたがコントロールイベントの事の間違った種類を指定しています。

UITextFieldTextDidChangeNotificationは通知イベント名ではなく、制御イベントタイプです。 UIControlEventValueChangedのように、UIControlEvent...のいずれかの定数が必要です。

(通知名は*秒NSStringのされているので、あなたは、警告メッセージが表示されている、とその引数の予想される型が定義された数値定数である。)

+0

奇妙な部分である私は、アクション火災にUITextFieldTextDidChangeNotificationを使用する場合IPadではなくシミュレータ上で実行されます。私がUIControlEventValueChangedを使用すると、警告は表示されませんが、アクションは実行されません。私はそれをUITextFieldDidChangeNotificationに戻しても、アプリケーションは正常に動作します。私はただ警告を受け取り、シミュレータはまだアクションを起動しません。 – Todd5

+0

私は、UITextFieldTextDidChangeNotificationを使用していたが、私のように爆発的な問題を抱えているいくつかの人々を見つけました。私は最終的に "forControlEvents:UITextFieldTextDidChangeNotification"から "forControlEvents:UIContolEventEditingChanged"に最後の部分を変更しました。このイベントはアクションを発生させるようです。なんらかの理由で、 "forControlEvents:UIControlEventValueChanged"は何もしませんでした。今は私の警告がなくなり、イベントはIPADとSimulatorで発生します。 – Todd5