Почему мой лист не прикреплен к окну, для которого он предназначен?

StackOverflow https://stackoverflow.com/questions/671204

Вопрос

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

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

Это было полезно?

Решение

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

Другие советы

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

  • Вы забыли установить окно розетка вашего оконного контроллера (Владелец файла из файла Nib).Как указал Натан, вы можете видеть, что -[NSWindowController window] метод возвращает nil.
  • Вы также должны снять флажок Виден при запуске вариант листа.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top