Frage

Ich habe eine NIB, die zwei Fenster enthalten, ein Hauptfenster sichtbar beim Start der App und der andere ist ein benutzerdefiniertes Blatt (und daher nicht sichtbar beim Start). Wenn das Blatt ist mein Controller Anruf erforderlich:

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

, die das Blatt Fenster zeigt und startet eine modale Sitzung, und das Fenster eine Standard Aqua Titelleiste hat, ist nicht ‚verbunden‘ in das Hauptfenster und kann um wie ein normales Fenster bewegt werden . Unnötig zu sagen, ist dies nicht erwünscht :-). Warum nicht das Blatt Fenster „pop-out“ des Fensters für die es läuft, wie Blätter in der Regel tun, wenn auf diese Weise begonnen?

hatte ich, ob die Tatsache, fragte mich, dass ich das Blatt innerhalb des Controllers -awakeFromNib begann könnte eine Wirkung haben, so zog ich das Blatt zu einer Aktion der Schaltfläche ich später auslösen könnte. Das ist nicht das Verhalten ändern. Ich habe nicht gedacht, etwas anderes zu versuchen. Ich bin mit dem 10.5 SDK-Targeting, mit Xcode 3.1.

Edit: , so sieht es aus wie ich einen modalen Dialog erstellt habe; Blätter und App-modale Dialoge werden mit der -beginSheet:modalForWindow:modalDelegate:didEndSelector:contextInfo: Methode beide gestartet. Aber wie kann ich zeigen, dass mein Fenster ein Blatt sein sollte und nicht ein modaler Dialog?

War es hilfreich?

Lösung

Wenn Mainwindow null ist, dann wird das Blatt als Fenster / Dialog angezeigt werden.

Andere Tipps

Das passiert mir vor ein paar Tagen:

  • Sie haben vergessen, die Fenster Ausgang der Fenstersteuerung ( Datei-Eigentümer der Nib Datei) zu setzen. Wie durch Nathan angegeben ist, kann man sehen, dass die -[NSWindowController window] Methode gibt null.
  • Sie müssen auch deaktivieren Sie die Visible beim Start Option des Blattes.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top