2011-03-01 5 views
0

Je suis nouveau à l'objectif C et j'ai un problème avec la ligne suivante. L'erreur est la suivante: "Passer l'argument 3 de 'addTarget; action: forControlEvents:' rend l'entier du pointeur sans un cast." Le truc bizarre, c'est que je reçois les avertissements et que tout fonctionne bien sur l'IPAD mais sur le simulateur ça marche parfois et d'autres fois ça ne marche pas. J'ai un champ de texte dans une tableviewcell, quand l'utilisateur tape il envoie ce qu'il a tapé à une variable.Erreur Objectif C pourControlEvents

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

Voici le IBAction:

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

Répondre

0

vous spécifiez le mauvais genre de chose pour l'événement de contrôle.

UITextFieldTextDidChangeNotification est un nom de notification, pas un type d'événement de contrôle. Vous voulez une des constantes UIControlEvent..., comme UIControlEventValueChanged.

(vous voyez l'avertissement parce que les noms de notification sont NSString * s, et le type attendu de cet argument est une constante numérique définie.)

+0

La partie étrange est que si j'utilise UITextFieldTextDidChangeNotification les feux d'action sur la IPad mais pas sur le simulateur. Si j'utilise UIControlEventValueChanged, je ne reçois pas les avertissements mais l'action ne se déclenche jamais. Si je le change à UITextFieldDidChangeNotification l'application fonctionne très bien je reçois juste les avertissements et le simulateur ne lance toujours pas l'action. – Todd5

+0

J'ai donc trouvé plusieurs autres personnes utilisant l'UITextFieldTextChangeNotification mais ayant des problèmes sporatiques comme moi. J'ai finalement changé la dernière partie de "forControlEvents: UITextFieldTextDidChangeNotification" à "forControlEvents: UIContolEventEditingChanged" cet événement semble déclencher l'action. Pour une raison quelconque, "forControlEvents: UIControlEventValueChanged" n'a rien fait. Maintenant mes avertissements sont partis et l'événement se déclenche sur IPAD et Simulator. – Todd5