У меня есть NIB, который содержит два окна, одно из которых - главное окно приложения, видимое при запуске, а другое - пользовательский лист (и, следовательно, не видимый при запуске). Когда требуется лист, мой контроллер звонит:
[NSApp beginSheet: sheetWindow modalForWindow: mainWindow modalDelegate: self didEndSelector: @selector(didEndSheet:returnCode:contextInfo:) contextInfo: nil];
, который отображает окно листа и запускает модальный сеанс, , но окно имеет стандартную строку заголовка Aqua, не «связано» с основным окном и может перемещаться, как обычное окно. Излишне говорить, что это не желательно :-). Почему окно листа не «всплывает» из окна, для которого оно запускается, как это обычно делают листы, когда начинаются таким образом?
Я подумал, может ли эффект, что я начинаю лист внутри контроллера -awakeFromNib
, иметь эффект, поэтому я перенес лист на действие кнопки, которое я мог вызвать позже. Это не изменило поведение. Я не думал ни о чем другом, чтобы попробовать. Я нацеливаюсь на 10.5 SDK, используя Xcode 3.1.
Редактировать: , похоже, я создал модальное диалоговое окно; листы и диалоговые окна приложения запускаются с помощью метода -beginSheet:modalForWindow:modalDelegate:didEndSelector:contextInfo:
. Но как мне указать, что мое окно должно быть листом, а не , а не модальным диалогом?