Créer subView dans un xib

GargantuaGargantua Membre
juillet 2015 modifié dans Dev. macOS #1

Bonjour,


 


Je travaille actuellement sur une appli pour mac, mais je bloque sur un endroit : créer une subview.


 


Effectivement j'ai un xib principal; et je veux créer une subview dans un autre xib pour l'afficher par dessus.


 


Je créer donc un NSViewController avec un xib (la classe se nommant OptionView), et j'arrive à  l'afficher le contenu de ce xib depuis mon xib principal en utilisant ce code :



NSViewController* vc = [[NSViewController alloc] initWithNibName:@OptionView bundle:nil];
NSView* loadedView = [vc view];
[self.window.contentView addSubview:loadedView];
[loadedView setFrameOrigin:NSMakePoint(self.notificationTableView.frame.origin.x , self.notificationTableView.frame.origin.y)]; //notificationTableView étant une simple NSTableView, je l'utilise juste pour la position.

Donc pas de problème avec l'affichage, mais je n'arrive pas à  créer d'outlets !


 


Dans ma OptionView je voudrais effectivement créer une NSTableView, donc j'y attribue simplement un outlet dans mon OptionView.h, mais lors de son initialisation je reçois ce message : 



 


Failed to connect (optionTableView) outlet from (NSView) to (NSTableView): missing setter or instance variable



 


Donc impossible de la manipuler, d'ajouter les delegates, etc.


 


Il s'affiche donc bien dans ma vue principale mais je ne peux rien faire avec.


 


 


Merci de votre aide.

Réponses

  • GargantuaGargantua Membre
    juillet 2015 modifié #2

    Pfiou j'ai réussi, j'ai juste perdu une journée dans l'affaire ::) .


     


     


    Pour ceux qui seront dans la même situation j'ai tout repris : j'ai créé une classe héritant de NSView (et j'ai abandonné mon NSViewController custom), que j'ai attribué à  mon xib dans l'indentity inspector. Concernant mon File's Owner, il hérite directement de NSViewController.


     


    Ensuite je n'ai pas eu de problème avec les outlets, et j'ai dû set les delegates et la dataSource pour ma NSTableView dans le code.


     


    Et n'oubliez pas de vérifier que l'outlet "view" du file's owner à  bien une référence sur votre view.


     


    Du coup j'espère que ça servira à  quelqu'un.


  • bon courage Gargantua. Si tu as d'autres questions sur les xib ou autres, n'hesite pas !
Connectez-vous ou Inscrivez-vous pour répondre.