Effectuer une IBAction depuis un event mouseDown d'une custom nsview
sync
Membre
Bonjour,
Je chercher a activer une IBAction située sur mon controlleur principal suite a l'activation d'un événement mouseDown d'une cutom nsview.
Je mets un exemple à votre disposition. Je suis sur que y a un truc tout bête, pour changer, a faire afin que l'action s'effectue mais je sèche. Dans cet exemple je voudrais modidier le contenu d'un nstextfield suite a un simple clic n'importe ou sur ma nsview personnalisée.
Je reste à votre disposition pour de plus amples informations
Merci et bonne journée
[Fichier joint supprimé par l'administrateur]
Je chercher a activer une IBAction située sur mon controlleur principal suite a l'activation d'un événement mouseDown d'une cutom nsview.
Je mets un exemple à votre disposition. Je suis sur que y a un truc tout bête, pour changer, a faire afin que l'action s'effectue mais je sèche. Dans cet exemple je voudrais modidier le contenu d'un nstextfield suite a un simple clic n'importe ou sur ma nsview personnalisée.
Je reste à votre disposition pour de plus amples informations
Merci et bonne journée
[Fichier joint supprimé par l'administrateur]
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Tu as un controller qui est instancié au chargement du nib (première création) et le code de la vue suivant :
et donc tu crée deux instances de la classe controller. Le controller défini dans Interface Builder n'est pas le même objet que celui du mouseDown: (tu peux comparer les adresses mémoire).
Pour attribuer le bon pointeur aController dans la vue tu peux par exemple envoyer un message setController:self à la vue dans la méthode awakeFromNib de la classe controller.
Ceci dit j'ai un peu de mal à voir ou tu veux en venir au final...
Simple en effet...
1. dans XCode, MyView.h : ajoute IBOutlet davant la décla de aController, puis sauvegarde le fichier :
2. dans XCode, MyView.m : supprime [tt]aController = [[Controller alloc] init];[/tt] dans la méthode initWithFrame.
3. dans IB : recharge le MyView.h (fenêtre MainMenu.nib, onglet Classes, navigation vers MyView {NSObject>NSResponder>NSView>MyView}, clic droit et Read MyView.h).
4. dans IB : tire une ligne entre MyView dans ta fenêtre et l'instance Controller dans MainMenu.nib., puis connecte à l'outlet aController.
5. Compile, teste, cherche à comprendre, puis dis merci.
.
- dans ma vue personnalisée, créé une méthode qui accepte le nom de l'action a effectuer sur le controlleur et le sender qui sera le controlleur puis rajouté une autre fonction qui réagis au clic et exécute la méthode du controller en récupérant l'aciotn et le sendeur original
- donc dans mon contolleur au awakeFromNib j'appelle la méthode de ma vue personnalisée qui permet de définir l'action a effectuer et le sender qui sera self.
Sais pas si j'ai été clair mais bon lol..
Bonne journée