2009-03-22 3 views
25

У меня есть NIB, который содержит два окна, одно из которых - главное окно приложения, видимое при запуске, а другое - пользовательский лист (и поэтому не отображается при запуске). Когда лист требуется мой контроллер вызовов:Почему мой лист не прикреплен к окну, за которым он запускается?

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

, который отображает окно листа и начинает модальный сеанс, но окно имеет стандартную аква строку заголовка, не «подключен» к главному окну и его можно перемещать так же, как в обычном окне. Излишне говорить, что это нежелательно :-). Почему окно окна не «выскочит» из окна, за которым он запускается, поскольку листы обычно делают, когда начинаются таким образом?

Я задался вопросом, может ли эффект, который я начал листать в контроллере -awakeFromNib, мог повлиять, поэтому я переместил лист на действие кнопки, которое я мог бы запустить позже. Это не изменило поведения. Я не думал ни о чем другом. Я нацелен на 10.5 SDK, используя Xcode 3.1.

Редактировать: поэтому похоже, что я создал модальный диалог; листы и диалоговые окна приложения начинаются с метода -beginSheet:modalForWindow:modalDelegate:didEndSelector:contextInfo:. Но как я могу указать, что мое окно должно быть листом и не модальный диалог?

+0

Проверьте, что mainWindow не равен нулю. –

+0

Я не вижу ничего плохого в этом, может быть, какой-то контекст может помочь. –

+0

Вы должны ответить на этот вопрос, Натан. Это почти наверняка правильно. – Chuck

ответ

17

Если mainWindow ничто, тогда лист будет отображаться как окно/диалог.

90

Это случилось со мной несколько дней назад:

  • Вы забыли установить окна выход из контроллера окна (владельца файла файла СИБ). Как показано Nathan, вы можете увидеть, что метод -[NSWindowController window] возвращает ноль.
  • Вы также должны снять галочку Видимый на старте вариант листа.
+18

«Видимый на старте» оказался моей проблемой - лист появился в правильное время, но отключился от его окна и не исчезнет, ​​несмотря на мой заказ. Спасибо, что опубликовали это! –

+12

«Видимый на старте» действительно была моей проблемой. Очень полезный ответ. – Monolo

+3

Видимый на старте тоже была моя проблема! – logancautrell

Смежные вопросы