Perchè la mia scheda non è attaccato alla finestra è gestito per?
-
21-08-2019 - |
Domanda
Ho un pennino che contiene due finestre, una è la finestra principale dell'applicazione visibile al momento del lancio e l'altro è un foglio personalizzato (e quindi non visibili al momento del lancio). Quando il foglio è richiesto mie chiamate del controller:
[NSApp beginSheet: sheetWindow modalForWindow: mainWindow modalDelegate: self didEndSelector: @selector(didEndSheet:returnCode:contextInfo:) contextInfo: nil];
, che visualizza la finestra foglio e inizia una sessione di modale, ma La finestra ha un'Aqua barra del titolo di serie, non è 'connesse' alla finestra principale e può essere spostato proprio come una finestra normale . Inutile dire che questo non è auspicabile :-). Perché non la finestra foglio di "pop out" della finestra è gestito per, come fogli di solito quando cominciata in questo modo?
Avevo chiesto se il fatto che stavo cominciando il foglio all'interno -awakeFromNib
potrebbe avere un effetto, così ho spostato la scheda del controller per l'azione di un pulsante ho potuto scatenare in seguito. Questo non cambia il comportamento. Non ho pensato a nient'altro da provare. Sto mira il 10,5 SDK, con Xcode 3.1.
Modifica in modo che appaia come se avessi creato una finestra di dialogo modale; lenzuola e le finestre di dialogo app-modali sono entrambi iniziato con il metodo -beginSheet:modalForWindow:modalDelegate:didEndSelector:contextInfo:
. Ma come faccio a indicare che la mia finestra dovrebbe essere un foglio e non di una finestra di dialogo modale?
Soluzione
Se MainWindow è pari a zero allora il foglio verrà visualizzato in una finestra / finestra di dialogo.
Altri suggerimenti
Questo è successo a me un paio di giorni fa:
- Hai dimenticato di impostare il Finestra di uscita del controller finestra ( proprietario del file del file pennino).
Come indicato da Nathan, si può vedere che il metodo
-[NSWindowController window]
restituisce zero. - È inoltre necessario deselezionare il Visibile al momento del lancio del foglio.