2011-03-01 27 views
0

我是新來的目標C,並遇到以下行的問題。錯誤是:「傳遞'addTarget的參數3; action:forControlEvents:'從指針中取得整數而沒有強制轉換。」奇怪的是,我得到的警告和一切工作正常的IPAD,但在模擬器有時工作,有時不工作。我在tableviewcell中有一個textfield,當用戶鍵入它時,會將它們輸入的內容發送給一個變量。錯誤目標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是通知名稱,而不是控件事件類型。你想要一個UIControlEvent...常數,如UIControlEventValueChanged

(你所看到的警告,因爲通知名稱的NSString·s,且預期的類型參數是一個定義的數字不變。)

+0

奇怪的部分是,如果我使用UITextFieldTextDidChangeNotification行動大火上iPad,但不在模擬器上。如果我使用UIControlEventValueChanged,我不會收到警告,但行動永遠不會觸發。如果我將其更改回UITextFieldDidChangeNotification,則應用程序可以正常工作,我只是收到警告並且模擬器仍不會觸發該操作。 – Todd5

+0

因此,我發現其他幾個人使用UITextFieldTextDidChangeNotification,但像我一樣存在問題。我最後將最後一部分從「forControlEvents:UITextFieldTextDidChangeNotification」更改爲「forControlEvents:UIContolEventEditingChanged」,這個事件似乎觸發了這個動作。出於某種原因,「forControlEvents:UIControlEventValueChanged」沒有做任何事情。現在我的警告消失了,事件在IPAD和模擬器上觸發。 – Todd5