2011-03-01 6 views
0

나는 객관적인 C에 새로운 오전와 다음 라인에 문제가 있습니다. 오류는 다음과 같습니다. "3 인수 'addTarget; 전달 : forControlEvents :'캐스트없이 포인터에서 정수를 만듭니다." wierd 일은 내가 경고를 얻고 모든 것이 IPAD에서 잘 작동하지만 시뮬레이터에서는 때때로 작동하고 다른 때는 작동하지 않는다는 것입니다. 나는 tableviewcell에 텍스트 필드를 가지고 있는데, 사용자가 타이핑 한 것을 변수에 보낸다.오류 목표 C forControlEvents

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

답변

0

당신은 제어 이벤트에 대한 물건의 잘못된 종류를 지정하고 다음은

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

는 IBAction를합니다.

UITextFieldTextDidChangeNotification은 제어 이벤트 유형이 아닌 알림 이름입니다. UIControlEventValueChanged과 같은 UIControlEvent... 상수 중 하나를 원합니다.

(알림 이름이 *들는 NSString 때문에 당신은 경고를보고하고, 그 인수의 예상 유형은 정의 된 숫자 상수이다.)

+0

이상한 부분 나는 액션 화재 온 UITextFieldTextDidChangeNotification를 사용하는 경우 IPad하지만 시뮬레이터에는 없습니다. UIControlEventValueChanged를 사용하면 경고 메시지가 표시되지 않지만 실행되지 않습니다. UITextFieldDidChangeNotification 다시 변경하면 응용 프로그램이 잘 작동합니다 경고 그냥 얻을 및 시뮬레이터 여전히 작업을 발생시키지 않습니다. – Todd5

+0

그래서 UITextFieldTextDidChangeNotification을 사용하는 다른 몇몇 사람들을 발견했지만 내가 한 것처럼 향기로운 문제를 겪고 있습니다. 마지막으로 "forControlEvents : UITextFieldTextDidChangeNotification"에서 "forControlEvents : UIContolEventEditingChanged"로 마지막 부분을 변경했습니다.이 이벤트는 작업을 실행하는 것 같습니다. 어떤 이유로 "forControlEvents : UIControlEventValueChanged"가 아무 것도하지 않았습니다. 이제 내 경고가 사라지고 이벤트가 IPAD 및 시뮬레이터에서 실행됩니다. – Todd5