2009-03-22 8 views
25

Mam NIB, który zawiera dwa okna, jeden jest głównym oknem aplikacji widocznym przy uruchomieniu, a drugi jest niestandardowym arkuszem (a zatem niewidoczny przy uruchomieniu). Gdy arkusz jest wymagane moje telefony Kontroler:Dlaczego mój arkusz nie jest dołączony do okna, dla którego jest uruchamiany?

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

który wyświetla okno arkusza i rozpoczyna sesję modalne, ale okno posiada standardowy pasek tytułowy Aqua, nie jest „podłączony” do głównego okna i można go przenosić tak jak zwykłe okno. Nie trzeba dodawać, że nie jest to pożądane :-). Dlaczego okno arkusza nie "wyskakuje" z okna, dla którego jest uruchamiane, jak zwykle robią to arkusze, gdy zaczynają się w ten sposób?

Zastanawiałem się, czy fakt, że zaczynałem arkusz w kontrolerze -awakeFromNib może mieć efekt, więc przesunąłem arkusz do działania przycisku, który mógłbym wywołać później. To nie zmieniło zachowania. Nie pomyślałem o niczym innym, by spróbować. Celuję w SDK 10.5, używając Xcode 3.1.

Edytuj: więc wygląda na to, że utworzyłem modalne okno dialogowe; Arkusze i okna dialogowe aplikacji modalnych zaczynają się od metody -beginSheet:modalForWindow:modalDelegate:didEndSelector:contextInfo:. Ale w jaki sposób mogę wskazać, że moje okno powinno być arkuszem, a okno dialogowe modalne?

+0

Sprawdź, czy mainWindow nie jest zerowe. –

+0

Nie widzę w tym nic złego, może jakiś kontekst może pomóc. –

+0

Powinieneś odpowiedzieć, Nathan. Prawie na pewno jest dobrze. – Chuck

Odpowiedz

17

Jeśli mainWindow ma wartość zero, arkusz zostanie wyświetlony jako okno/okno dialogowe.

90

To zdarzyło mi się kilka dni temu:

  • zapomniałeś ustawić okna wylot kontrolerze okna (właściciela plik za pliku NBI). Jak wskazano przez Nathana, możesz zauważyć, że metoda -[NSWindowController window] zwraca zero.
  • Musisz także odznaczyć opcję widoczna przy uruchomieniu arkusza.
+18

"Visible at launch" okazało się być moim problemem - arkusz pojawił się we właściwym czasie, ale został odłączony od okna i nie zniknął mimo mojego zamówieniaOut: zadzwoń. Dzięki za zamieszczenie tego! –

+12

"Widoczny przy starcie" również był moim problemem. Bardzo przydatna odpowiedź. – Monolo

+3

Widoczny przy uruchomieniu był również mój problem! – logancautrell

Powiązane problemy