Aller au contenu

Manipuler des fenêtres


zekiller28
 Share

Messages recommandés

Hello !

j'ai une fenêtre principale avec 2 boutons (afficher et masquer une fenêtre)…

 

J'ai créé une fenêtre du type HUD.

Quand je compile mon projet, j'ai bien les 2 fenêtres qui s'affichent

 

J'ai bindé ma fenêtre et mes boutons pour obtenir ça dans mon .h :

 

@interface
- (IBAction)newwindowHUD:(id)sender;
- (IBAction)fermerHUD:(id)sender;

@property (assign) IBOutlet NSWindow *windowHUD;

 

Je n'arrive pas à afficher/masquer cette maudite fenêtre HUD, je dois avoir un truc à faire au nouveau du sous-classement de la fenêtre HUD mais je bloque sur la bonne terminaison… ça fait quelques 3h00 que je suis dessus en épluchant je ne sais combien de tuto sans rien trouver, ça commence à me :zz-big-beurk::zz-big-dingue:

 

Une âme charitable pour m'éviter le suicide ?

Lien vers le commentaire
Partager sur d’autres sites

Tu as essayé '[_windowHUD orderOut:nil]" pour la fermer et "[_windowHUD makeKeyAndOrderFront:nil]" pour l'ouvrir ?

 

Note: pour éviter qu'une fenêtre de ton projet s'ouvre automatiquement au lancement de ton application, il faut décocher "Visible at launch" dans l'éditeur de XIB d'Xcode.

Lien vers le commentaire
Partager sur d’autres sites

Oui j'ai essayé tout ça… et je n'ai pas trouvé le "visible at launch" et ce n'est pas faute d'avoir cherché…

 

cf : http://stackoverflow...ud-window-cocoa

 

Ha ok pour le "visible at launch", j'avais cliqué sur le "view" et non pas le "panel window"… 3 plombes de paumées… Par contre l'affichage/masquage, toujours pas…

 

Voilà ce que me retourne ma console quand j'essaye d'afficher puis de masquer ma HUD :

 

2013-10-29 12:26:26.934 Test_Fenetre[16126:903] -[NSView orderOut:]: unrecognized selector sent to instance 0x10060d8e0
2013-10-29 12:26:26.934 Test_Fenetre[16126:903] -[NSView orderOut:]: unrecognized selector sent to instance 0x10060d8e0
2013-10-29 12:26:24.207 Test_Fenetre[16126:903] -[NSView makeKeyAndOrderFront:]: unrecognized selector sent to instance 0x10060d8e0

Lien vers le commentaire
Partager sur d’autres sites

Dans mon .m j'ai ça :

 

@implementation AppDelegate

@synthesize window = _window;
@synthesize windowHUD = _windowHUD;

 

Je pense que je dois sous-classer ma fenêtre non ?

 

Screen Shot 2013-10-29 at 12.26.05.png

 

Merci Jipé, j'ai trouvé entre temps pour le "visible at launch" (le fait que tu me fasses la même recommandation que dans les tutos que j'avais trouvé m'a prouvé que ce devait être la bonne piste… et en insistant un peu plus j'ai pigé)…

Lien vers le commentaire
Partager sur d’autres sites

Oui donc je vois ton problème.

 

En fait tu as du faire pointer ta "windowHUD" pas sur une NSWindow mais sur une NSView (même si tu l'a déclaré autrement), et je parie que tu l'a fait pointé plus précisément sur la content-view de ta window (c'est à dire la vue qui est chargé d'afficher le contenus de la fenêtre). Fait le bien pointer sur ta window, et ré-essaye (dans mon screen shot par exemple on vois bien "Window - killou" qui est la NSWindow et "View" à l'intérieur qui est la content-view.

 

Non : tu doit rien sous classer du tout. Sous classer, c'est vraiment quand tu commence à faire des trucs un peu poussé, ce qui est loin d'être le cas pour le moment ;) (et pour rappel : les @synthetize ne sont plus nécessaire avec OC 2.0 / ABI 64).

Lien vers le commentaire
Partager sur d’autres sites

Effectivement, c'était bien ça le problème :zz-big-bien:

 

En fait je "drag and dropais" depuis la fenêtre HUD donc à chaque fois ça me sélectionnait le view et non pas le NSPanel de cette HUD… Je saurais maintenant qu'il faut utiliser l'affichage "Objects" plutôt que de passer par les objets sur le plan de travail (là où il y a le quadrillage)…

 

Merci boss ! :zz-big-candidat:

Lien vers le commentaire
Partager sur d’autres sites

moi, je propose "killou" en lieu et place de "zekiller28", trop mimi ! :D

Lien vers le commentaire
Partager sur d’autres sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

Chargement
 Share

×
×
  • Créer...