По большому счету, модальные интерфейсы засасывают большие камни. С другой стороны, я не могу придумать лучшего способа справиться с Файл открыт ... или Распечатать..., и я думаю, это потому, что
Составим небольшое руководство по стилю. Предложите любые варианты использования, в которых диалоговое окно является предпочтительным представлением, и почему оно предпочтительнее. Может ли диалог быть немодальным? Если да, то как вы отмечаете границы транзакций, поскольку «Отмена» перестает иметь четкое значение. Например, вы используете кнопку «Применить»?





IMO, модальные интерфейсы следует использовать только тогда, когда вы ИМЕЮТ имеете дело с тем, что диалог делает или запрашивает, прежде чем приложение сможет продолжить. В любой другой раз, если вы используете диалог, он должен быть немодальным.
Но опять же, должна ли эта задача быть выполнена или, по крайней мере, решена ПЕРЕД продолжением? В зависимости от того, как он построен, добавляет, редактирует и уведомляет, все МОЖЕТ попасть в эту категорию.
При создании немодальных окон вы можете захотеть убедиться, что они уникальны: вам действительно не нужны два идентичных набора инструментов (например, в графической программе) или два идентичных диалоговых окна настроек (я видел это в продукте), которые могут быть в лучшем случае сбивает с толку.
С другой стороны, мне нравится, когда диалог поиска / замены не является модальным: я могу вернуться к документу и отменить последнее изменение, пропустить где-нибудь еще и т. Д .; без потери текущих настроек.
Каким-то образом модальные диалоги говорят пользователю «остановить все остальное и закончить то, что вы делаете», что имеет свое применение, как указано в Ответ Стивена Райтона.
Это может быть первое нетривиальное использование шаблона Singleton, которое я когда-либо видел.
Как насчет окна входа пользователя в систему, вы не можете (или не должны) использовать остальную часть приложения, пока не войдете в систему, при условии, что безопасность необходима.
Вы можете просто выделить серым цветом те части приложения, которые недоступны, пока пользователь не войдет в систему. Что, если пользователь хочет получить доступ к части меню справки до того, как войдет в систему?
Чем в принципе выделение серого отличается от модального? Это не.
@Rhubarb - да, это так. Он передает информацию о том, что возможно.
Я думаю, различие в том, что если есть что-то, что пользователь может делать в приложении, пока отображается диалоговое окно, то это не должно быть модальным. Это включает в себя действия копирования / вставки. Лично я бы предпочел, чтобы диалоги открытия и печати файла / открытия и печати тоже не были модальными. Я считаю, что модальные диалоги - это признак слабого дизайна, необходимое зло, позволяющее быстро выпустить код.
По моему опыту, очень немногие вещи должны быть модальными в пользовательском интерфейсе. Одним из лучших примеров этого и, вероятно, хорошо знакомым пользователям сайта, является Eclipse. Хотя в нем есть несколько модальных диалогов, и я говорю здесь только об основной среде IDE, они в основном делятся на три категории: операции с файлами, диалоговые окна настроек и диалоговые окна параметров.
Диалоги предпочтений, хотя по традиции модальные, также не обязательно должны быть модальными. Все, что вам нужно сделать, это взглянуть на модель предпочтений Mac OS, в которой изменения конфигурации происходят немедленно, а модальное поведение вводится только в тех случаях, когда изменение может помешать работе.
Короче говоря, вот что я бы сказал, это хорошее резюме того, что должно быть модальным. Исключения из этого набора должны быть обоснованы использованием.
Я знаю, что вы имеете в виду под вводом параметров, но ленивый дизайнер может утверждать, что любой диалог собирает параметры для команды, которая выполняется при нажатии кнопки ОК. Это дорога обратно в ад.
Мы используем их здесь для добавления, редактирования и уведомлений. Экранная недвижимость ценится. ;)