Есть ли способ запустить Modal в двух окнах?

#objective-c #cocoa #macos #nswindow

#objective-c #cocoa #macos #nswindow

Вопрос:

Как в…

У меня есть действие в моем приложении, которое выводит окно и сопутствующую панель параметров. Я хочу заблокировать взаимодействие с исходным окном и сосредоточиться исключительно на всплывающем окне и его панели.

Я могу легко это сделать, если мне просто потребуется единственное всплывающее окно, а не панель. Я также могу включать и отключать объекты в исходном окне, но я хотел бы сделать это более элегантно. Есть ли решение?

Ответ №1:

Да, используйте лист, прикрепленный к вашему главному окну, вместо того, чтобы открывать модальное окно.

Поскольку лист является модальным для окна, а не для приложения, вы все равно можете взаимодействовать с другими окнами в вашем приложении во время отображения листа (например, вашей панели).

Комментарии:

1. Моя проблема с таблицами для этой ситуации заключается в том, что у них очень специфическое поведение, которое кажется подходящим только для определенных ситуаций. Мое всплывающее окно с отдельной панелью параметров — это окно предварительного просмотра, которое часто больше родительского окна. Обычно он заполняет всю высоту экрана и не подходит для того, чтобы быть листом ни по внешнему виду, ни по приоритету. Спасибо за предложение.

2. Я все еще считаю, что это правильный пользовательский интерфейс для ситуации, которую вы описываете. Для больших листов есть приоритет, взгляните, например, на лист фиксации системы управления версиями в Xcode 4.

3. Я не знаком с VCS, поэтому я посмотрю на это сейчас и вернусь к этому вопросу очень скоро. Спасибо, Роб!

4. Я не использую Xcode 4 и в настоящее время не в состоянии выполнить обновление, и мне не удалось найти пример того, о чем вы говорите, в Google. Если я не неправильно понимаю, что лист должен выдвигаться из своего родительского окна (включая пример, который вы упомянули в Xcode 4), я думаю, что это был бы непрактичный и уродливый элемент пользовательского интерфейса для большого элемента пользовательского интерфейса портретного размера. Если его родительское окно не большое и не центрировано, оно исчезнет с экрана. В документах разработчика упоминается, что он предназначен для диалоговых окон, и я бы не стал рассматривать, что я хочу отобразить в диалоговом окне. Я очень ценю совет.