Question

J'ai un NIB qui contient deux fenêtres, l'une est l'application la fenêtre principale visible au lancement et l'autre est une feuille personnalisée (et donc pas visible au lancement). Lorsque la feuille est nécessaire à mes appels du contrôleur:

[NSApp beginSheet: sheetWindow modalForWindow: mainWindow modalDelegate: self didEndSelector: @selector(didEndSheet:returnCode:contextInfo:) contextInfo: nil];

qui affiche la fenêtre de feuille et démarre une session modale, mais la fenêtre a une barre de titre standard Aqua, n'est pas « connecté » à la fenêtre principale et peut être déplacé autour comme une fenêtre régulière . Inutile de dire que ce n'est pas souhaitable :-). Pourquoi ne pas la fenêtre de feuille « pop out » de la fenêtre, il est exécuté pour, comme des feuilles ne sont généralement quand elle a commencé de cette façon?

Je me demandais si le fait que je commence la feuille à l'intérieur du contrôleur pourrait avoir un -awakeFromNib effet, je déplacé la feuille à l'action d'un bouton je pourrais déclencher plus tard. Cela n'a pas changé le comportement. Je n'ai pas pensé à autre chose à essayer. Je cible le SDK 10.5, en utilisant Xcode 3.1.

Modifier il semble que j'ai créé une boîte de dialogue modale; feuilles et boîtes de dialogue app-modal sont tous les deux ont commencé avec la méthode -beginSheet:modalForWindow:modalDelegate:didEndSelector:contextInfo:. Mais comment puis-je indiquer que ma fenêtre doit être une feuille et pas un dialogue modal?

Était-ce utile?

La solution

Si mainWindow est nul alors la feuille sera affiché sous la forme d'une fenêtre / dialogue.

Autres conseils

Ce qui est arrivé à moi il y a quelques jours:

  • Vous avez oublié de régler la fenêtre sortie de votre contrôleur de fenêtre ( propriétaire du fichier du fichier Nib). Comme indiqué par Nathan, vous pouvez voir que la méthode retourne nil -[NSWindowController window].
  • Vous devez également décocher l'option Visible au lancement de la feuille.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top