interface définie en plusieurs XIB

iSofTomiSofTom Membre
19:43 modifié dans API AppKit #1
Bonjour,
j'essaye de découper mon interface en plusieurs XIB. Par exemple en iPhone j'arrive à  ajouter une vue "Loaded From..." un autre XIB, mais avec interface builder pour Mac, j'y arrive pas!
C'est pas possible ou c'est moi qui ne sais pas chercher? (surement la deuxième solution  :) )

Réponses

  • février 2010 modifié #2
    Je pense pas que ça soit possible pour le Mac pour l'instant.
    De toute façon il n'y a rien de très sorcier.
    Admettons que ta window contienne 2 vues.

    <br />- (void)awakeFromNib{<br /><br />&nbsp; &nbsp; &nbsp;  myFirstVController = [[MyFirstVController alloc] initWithNibName:@&quot;MyFirstVControllerNibName&quot; bundle:nil];<br />&nbsp; &nbsp; &nbsp;  [topView addSubview:myFirstVController.view];<br /><br /><br />&nbsp; &nbsp; &nbsp;  mySecondVController = [[MySecondVController alloc] initWithNibName:@&quot;MySecondVControllerNibName&quot; bundle:nil];<br />&nbsp; &nbsp; &nbsp;  [bottomView addSubview: mySecondVController.view];<br />}
    


    Si tu te trouves dans le cas de plusieurs fenêtres :

    <br />- (void)openMySecondWindow{<br />&nbsp; &nbsp;  if(mySecondWController!=nil)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  mySecondWController = [[MySecondWController alloc] init]; // ou initWithWindowNibName:<br />&nbsp; &nbsp;  [mySecondWController showWindow:self];<br />&nbsp; &nbsp; <br />}
    

  • yoannyoann Membre
    19:43 modifié #3
    C'est possible sous Mac aussi, il faut simplement utiliser les NSWindowsController qui sont bien moins répendu et juste un peut plus buggué : http://developer.apple.com/Mac/library/documentation/Cocoa/Reference/ApplicationKit/Classes/NSWindowController_Class/Reference/Reference.html

    (d'expérience, à  éviter avec CoreData)
  • CéroceCéroce Membre, Modérateur
    19:43 modifié #4
    Les NSViewControllers marchent plutôt bien. C'est la doc qui est vraiment trop succinte (à  ce niveau là , c'est du foutage de gueule). Il faut juste penser à  placer la vue dans la Responders Chain, ce n'est pas fait automatiquement, alors qu'on s'y attendrait.
  • yoannyoann Membre
    19:43 modifié #5
    dans 1266512801:

    Les NSViewControllers marchent plutôt bien. C'est la doc qui est vraiment trop succinte (à  ce niveau là , c'est du foutage de gueule). Il faut juste penser à  placer la vue dans la Responders Chain, ce n'est pas fait automatiquement, alors qu'on s'y attendrait.


    Oui de manière général ça marche bien même si la doc est à  chier.

    Simplement je me suis déjà  retrouvé comme un con sur une archi logiciel basé sur les NSViewController pour faire ça propre et des NSArrayController qui fonctionnait plus. Dans le même projet j'ai rajouté un NSArrayController avec une fenêtre bidon dans le MainMenu.xib (non géré par une NSViewController) et la aucun problème. On a tourner avec un autre pote qui a maintenant quelques années d'expérience en CoreData et au final la conlusion a été que NSViewController fou la merde on sait pas trop où.
  • Nebuchad34Nebuchad34 Membre
    19:43 modifié #6
    Ah intéressant !
    Moi qui comptait un de ces quatre passer Poker Manager à  CoreData, je m'abstiendrai, vu que toute mon interface repose sur des NSViewController  >:)

    C'est tellement pratique ! Comment on fait sans ?
  • yoannyoann Membre
    19:43 modifié #7
    dans 1266539220:

    Ah intéressant !
    Moi qui comptait un de ces quatre passer Poker Manager à  CoreData, je m'abstiendrai, vu que toute mon interface repose sur des NSViewController  >:)

    C'est tellement pratique ! Comment on fait sans ?


    Le bug était avec 10.6.0, depuis c'est peut être résolu. Essaye, mais si tes NSTableView ne se refresh pas toute seule, ne t'en étonne pas.
Connectez-vous ou Inscrivez-vous pour répondre.