2011-02-04 1 views
2


J'ai deux fichiers nib. L'un a une NSWindow et l'autre a NSView. Je veux que NSView se charge sur NSWindow au moment de l'exécution. Je comprends que je devrai utiliser les classes NSWindowController et NSViewController. Mais je ne peux pas comprendre comment.
Je suis nouveau au cacao. S'il vous plaît me guider sur la façon d'y parvenir.
Si possible, pouvez-vous me diriger vers un exemple d'application ou un guide pour cela?
Merci à l'avance ..Comment charger un NSView sur une NSWindow dynamiquement?

MISE À JOUR :: Voir les commentaires en ligne

@interface ViewAvailableItemsWindowController : NSObject { 
    IBOutlet NSWindow * viewAvailableItemsWindow; //Window in question 
    IBOutlet NSView * viewAvailableItemsView; //View in question 

    ItemSearchViewController * instanceItemSearchView; //ViewController object 
} 

@end 


@implementation ViewAvailableItemsWindowController 

-(void)awakeFromNib{ 
    [viewAvailableItemsWindow makeKeyAndOrderFront:nil]; 
    instanceItemSearchView = [[ItemSearchViewController alloc]initWithNibName:@"ItemSearchView" bundle:nil] ; //Initiating the viewController with the nib for the view. 
    [viewAvailableItemsView addSubview:[instanceItemSearchView view]]; //Adding the subview to the window.. 

} 

-(void)dealloc{ 
    [instanceItemSearchView release]; 
    [super dealloc]; 
} 

@end 

Répondre

1

En supposant que la fenêtre a déjà une vue que vous souhaitez insérer le point de vue chargé dans, vous devez dire la vue existante dans la fenêtre pour ajouter la nouvelle vue en tant que sous-vue.

Le View Programming Guide a plus d'informations.

+6

Je pense qu'il cherchait un mini tutoriel et de l'aide, pas un commentaire RTFM. – johnrubythecat

+1

Ce n'est pas un il, c'est un elle :) (très tard mais toujours voulu corriger vous;)) –

3

// EDIT concernant votre question vous avez d'abord mis le contentView de votre NSWindow à itemsView. Vous pouvez le faire une fois par exemple. dans viewDidLoad ou init/awakeFromNib:

viewAvailableItemsWindow.contentView = viewAvailableItemsView; 

alors de rendre la dynamique vue d'ajouter de nouveaux éléments à la window.contentView:

[viewAvailableItemsWindow.contentView addSubview:[instanceItemSearchView view]]; 

pour enlever l'ancien et ajouter de nouveaux appellent removeFromSuperview sur l'ancien, puis ajouter le nouveau comme ci-dessus

+0

Ceci est vraiment un commentaire, pas une réponse à la question. Veuillez utiliser "ajouter un commentaire" pour laisser un commentaire à l'auteur. –

+0

ajouté explication –

Questions connexes