NSSplitView

Paisible.frPaisible.fr Membre
16:09 modifié dans API AppKit #1
Bonjour j'ai une petite question sur les NSSplitView.

Voila, dans Interface builder je définis une windows avec un NSSplitView dedans.
Dans le nib je rajouter deux NSCustomView dans lesquelles je met mes objects.

Là  où je ne sais plus faire, c'est comment dire au NSSplitView d'utiliser les vues que j'ai définies en tant que NSCustomView. On peut le faire via IB ou il faut le coder ? Si c'est le cas comment ?

PS : oui je sais il suffit de cliquer dans la vue de la NSSplitView pour y ajouter des objects et la modifier. Mais moi je veux les externaliser car sinon ca va être ingérable.

En espérant avoir été clair dans l'exposé de mon problème

Réponses

  • Philippe49Philippe49 Membre
    mai 2008 modifié #2
    Faire le contraire
    créer les views, puis utilser le menu Layout >Embed Objects In > split view

    Sorry je n'avais pas lu complètement, tu veux avoir deux Custom View à  part, répertoriées dans le fichier .nib, et qui lors de l'exécution seront des subviews dans la splitview.

    Idée : Sous-classer NSSplitView avec des IBOutlets que tu connecteras à  tes deux Custom View, l'ajout effectif se faisant dans awakeFromNib() de ta sous-classe ?  
  • Paisible.frPaisible.fr Membre
    16:09 modifié #3
    Mum... j'ai fais l'operation suivante :

    1) nouveau fichier NIB
    2) creation d'un object windows
    3) ouverture du fichier windows
    4) a gauche depôt d'un label et d'un text box, a droite 3 boutons l'un en dessous de l'autre
    5) selection du label et du text box puis Layout -> embed -> CustomView
    6) selection des trois boutons puis Layout -> embed -> CustomView
    7) selection des deux customView puis Lyout -> enmbed -> SplitView

    Le résultat est pas mal mais j'aurais aimé voir mes custow view au meme niveau que l'object windows plutot que d'avoir l'object windows contenant tout
    Voire mettre chaque view dans un nib différent et les charger dans le SplitView.

    C'est avant pour une question d'organisation et de charge mémoire.
  • Philippe49Philippe49 Membre
    16:09 modifié #4
    #import <Cocoa/Cocoa.h>
    @interface MySplitView : NSSplitView {
    IBOutlet id leftView;
    IBOutlet id rightView;
    }
    @end

    ============================
    @implementation MySplitView
    -(void)awakeFromNib
    {
    [[[self subviews] objectAtIndex:0] addSubview:leftView];
    [[[self subviews] objectAtIndex:1] addSubview:rightView];
    }
    @end


  • Paisible.frPaisible.fr Membre
    16:09 modifié #5
    Parfais Philippe49,

    C'est clair, net, précis et bien illustré : un vrai pédagogue. C'est exactement ce que je cherchais à  faire.

    Merci infiniment. 
Connectez-vous ou Inscrivez-vous pour répondre.