[Résolu] - NSWindow et contentView
skimpy
Membre
Bonjour,
J'ai créé une sous-classe de NSWindow afin d'avoir une barre de titre semblable à celle de l'App Store (http://pommedev.mediabox.fr/utilisation-des-classes-cocoa/nstoolbar-plus-petite-et-padding/). J'essaie dans ma sous-classe de repositionner le contentView de la façon suivante, mais ça ne fonctionne pas (il prend toujours en compte le cadre d'une fenêtre standard) :
Code de la sous-class NSWindow :
Dans mon contrôleur, j'ai une IBOutlet vers cette fenêtre. Lorsque dans ce contrôleur j'affiche les informations relatives à l'objet fenêtre, je n'obtiens pas le même contentView.
Code dans le contrôleur :
Les logs :
Est-ce que je procède de la bonne façon ?
Merci.
J'ai créé une sous-classe de NSWindow afin d'avoir une barre de titre semblable à celle de l'App Store (http://pommedev.mediabox.fr/utilisation-des-classes-cocoa/nstoolbar-plus-petite-et-padding/). J'essaie dans ma sous-classe de repositionner le contentView de la façon suivante, mais ça ne fonctionne pas (il prend toujours en compte le cadre d'une fenêtre standard) :
Code de la sous-class NSWindow :
NSLog(@" Sous-Classe / self : %@", self);<br />NSLog(@" Sous-Classe / ContentView : %@", [self contentView]);<br />NSButton *close = [self standardWindowButton:NSWindowCloseButton];<br />NSRect c = [[close superview] frame];<br />NSRect contentViewFrame = NSMakeRect(0, largeTitleBar, NSWidth(c), NSHeight(c) - (largeTitleBar * 2));<br />[[self contentView] setFrame:contentViewFrame];
Dans mon contrôleur, j'ai une IBOutlet vers cette fenêtre. Lorsque dans ce contrôleur j'affiche les informations relatives à l'objet fenêtre, je n'obtiens pas le même contentView.
Code dans le contrôleur :
NSLog(@"Controleur / _window : %@", _window);<br />NSLog(@"Controleur / ContentView : %@", [_window contentView]);
Les logs :
2012-01-17 09:34:37.921 Beam[895:707] Sous-Classe / self : <MYWindow: 0x1005476c0>
2012-01-17 09:34:37.928 Beam[895:707] Sous-Classe / ContentView : <NSView: 0x100549af0>
2012-01-17 09:34:40.199 Beam[895:707] Controleur / _window : <MYWindow: 0x1005476c0>
2012-01-17 09:34:40.200 Beam[895:707] Controleur / ContentView : <NSView: 0x100523cf0>
Est-ce que je procède de la bonne façon ?
Merci.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Dans initWithContentRect c'est trop tôt, essaye dans awakeFromNib.
J'ai ajouté la méthode windowDidResize mais je n'obtiens pas le résultat escompté et l'affichage est saccadé.
Tu peux le régler aussi bien par le xib (et le tester en utilisant la commande "Simulate Interface") que par le code.
Encore merci.