xcode : plante avec NSButton d'un NSViewController

bofxyz

Membre confirmé
26 Juillet 2012
85
1
Bonjour
OSX 10.7.5 - XCode 4.6.1
Je crée une instance "ViewCtrl" de "NSViewController" avec le xib associé.
Je crée un bouton dans "ViewCtrl" avec IB ; je le connecte à l'IBAction "button" correspondante.
Je place la vue correspondante dans une "NSWindow" "window".
Bloc de code:
    mainView = [_window contentView];
...
    ViewCtrl *viewCtrl = [[ViewCtrl alloc] initWithNibName:@"ViewCtrl" bundle:nil];
    NSView * vue = [NSView new];
    vue = [viewCtrl view];
    [mainView addSubview:vue];
Tout est OK. Je vois bien le bouton dans la fenêtre.
Mais si je clique sur le bouton, ça plante !
Première ligne de la console :
-[__NSCFDictionary button:]: unrecognized selector sent to instance 0x100352270
et rien de bien explicite ensuite.
Merci de l'aide.
 
Dernière édition:
Merci.
Mais je ne vois pas ce qui cloche ?
Nouveau message :
Unknown class Button in Interface Builder file at path /Users/rn/Library/Developer/Xcode/DerivedData/SubViews-csrvefcrciuctmeesmyhcgtakhfl/Build/Products/Debug/SubViews.app/Contents/Resources/PlanteViewController.nib.
Il y a un problème avec les NSButton...
Pour moi NSViewController devait me permettre de construire une vue réutilisable dans plusieurs fenêtres différentes , avec des NSButton, NSTextField, NSImageView, etc. Est-ce que je me trompe ?

---------- Nouveau message ajouté à 17h47 ---------- Le message précédent a été envoyé à 17h03 ----------

Effectivement, mon code était très laid.
En simplifiant avec le code :
ViewController *viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
[viewController loadView];
[[_window contentView] addSubview:[viewController view]];
j'ai toujours le même problème avec un NSButton et un NSTextField. C'est toujours sur le clic dans un des contrôles que ça plante, même si le clic est dans NSTextField qui n'est pas connecté par IBAction.
Problème de gestion d'événement de la souris ? De quel côté chercher ?
 
Il faut ajouter aussi une @property (strong) NSViewController *viewController dans le AppDelegate.h.
addSubview est insuffisant.

Merci à tous.