У меня есть 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:
. Но как я могу указать, что мое окно должно быть листом, а не модальным диалогом?