Подтвердить что ты не робот

Советы по стыковке окон для Mac

Я нахожусь на фоне программирования Windows при написании инструментов, но программировал с помощью Carbon и Cocoa за последний год. Я признаю это, скрываясь от программирования пользовательского интерфейса. Я в основном вскрывал свой код OpenGL в представлении, а затем оставался в своей комфортной зоне, используя обычный агрегированный OpenGL С++ код платформы, как обычно.

Однако теперь я хочу начать перенос одного из моих более сложных приложений в Mac OS.

Обычно я использую стандартный подход к подключению MDI для Visual Studio, который отлично, но очень похож на Windows. От использования Mac в основном сейчас какое-то время, я не склонен видеть такой метод, используемый для пользовательских интерфейсов Mac. К сожалению, даже Xcode не поддерживает идею перетаскивания/закрепления просмотров. Я вижу пристыкованные виды с разделительными панелями, но об этом.

Ближайшая вещь, которую я видел для подхода Visual Studio, - это Photoshop CS4, который довольно приятный.

Итак, каков общий консенсус по этому поводу? Есть ли еще Mac-образный способ достижения того же, чего я не видел? Если нет, я рад написать диспетчер окон в Cocoa сам, так что я наконец смогу научиться тому, что выглядит как отличный API.

Заметьте, я не хочу использовать QT или любые другие кросс-платформенные библиотеки. Все дело в том, что я хочу, чтобы приложение Mac выглядело как приложение для Mac, оставьте приложение Windows похожим на приложение Windows. Я всегда нахожу, что библиотеки кросс-платформенного, как правило, теряют этот эффект, и когда я вижу собственный пользовательский интерфейс Mac с фантастическими переходами и анимациями w80, я всегда улыбаюсь. Это также хороший повод для меня узнать Cocoa.

Если это так, если для этого есть библиотека с открытым исходным кодом Cocoa, мне бы хотелось узнать об этом! Мне бы хотелось увидеть, как кто-то еще это достигнет, и поможет сгладить кривую обучения Cocoa.

Приветствия,

Шейн

ОБНОВЛЕНИЕ. Я забыл упомянуть критический момент. Я поддерживаю плагины, которые могут иметь собственный пользовательский интерфейс для отображения различной информации о плагинах. Я не знаю, какие плагины будут загружены, и я не знаю, где будет жить их пользовательский интерфейс, если я не поддерживаю стыковку. Мне бы хотелось услышать мысли людей об этом, а именно: как мне поддерживать архитектуру просмотра плагинов, если пользовательский интерфейс не может измениться? Где я могу разместить плагины?

4b9b3361

Ответ 1

Исходя из фона Windows, вы чувствуете необходимость иметь стыковочные окна, но действительно ли это важно для приложения? Философия Apple (на мой взгляд) заключается в том, что дизайнер знает лучше, чем пользователь должен выглядеть и работать. Например, iTunes - довольно сложное приложение, но оно не позволяет вам изменять пользовательский интерфейс, менять скин и т.д., Потому что Apple хочет сохранить его согласованным. Они предлагают полный просмотр, мини-плеер и несколько различных вариантов просмотра, но они не позволяют вам вытащить исходный список в отдельное окно или прикрепить его в другие положения. Они думают, что это должно быть слева, поэтому он остается...

Вы сказали, что хотите сделать приложение Mac похожим на Mac-приложение, и, как вы указали, приложения Mac не имеют окна для стыковки. Поэтому внедрение ваших собственных стыковочных окон - это, вероятно, шаг в неправильном направлении;)

Ответ 2

+1 к ответу Кена.

С точки зрения пользователя, если его интеграция с таким приложением, как он есть в Adobe CS или Eclipse, я хочу, чтобы все было как можно более кратким, а все различные параметры и отображения были на моем пути, поэтому я могу сосредоточиться на документе.

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

Я бы порекомендовал держать его как можно проще.

Ответ 3

Одна вещь, которая распространена среди многих приложений Mac, - это возможность скрыть все хром и сосредоточиться на вашем контенте. То, что за панелью инструментов "tic tac" находится в верхнем правом углу многих окон. Серьезной слабостью многих пользовательских интерфейсов стыковки является то, что они ожидают, что окно займет большую часть экрана, потому что пристыкованные панели могут скрывать контент. Даже если стыковочные панели сжимаются, пространство, оставшееся от них, часто просто теряется и заполняется пробелом. Итак, если вы создадите док-панель в своем интерфейсе, вы должны ожидать, что она будет видна большую часть времени. Например, список источников iTunes четко разработан, чтобы быть видимым все время, но вы можете дважды щелкнуть список воспроизведения, чтобы открыть его в новом окне.

Чтобы привыкнуть к диапазону элементов управления Mac, я предлагаю вам попробовать сделать серьезную работу с некоторыми приложениями, которые не имеют межплатформенного интерфейса; например, приложения iWork, Interface Builder или Preview. Обратите внимание на то, где отображаются элементы управления и панели инструментов "зачем", в нижних барах, в инспекторах, в списках источников/боковых панелях, в панелях, таких как библиотека IB или панели "Шрифт и цвет", в контекстных HUD. Не забудьте также в строке меню. Познакомьтесь с ощущением контроля - их отзывчивость, модальность, размер, группировка и последовательность. Попытайтесь развить какой-то вкус - не все идеально; просто попробуйте iCal, если вы хотите что-то высмеять.

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

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

В Keynote маскирование начинается с элемента с названным элементом меню или элемента панели инструментов, использует HUD, который появляется в тот момент, когда вы нажимаете на замаскированное изображение и допускаете прямую манипуляцию, включая разумное отображение масштаба изображения, которое вы маскировки. Пока вы перетаскиваете замаскированное изображение, оно также следует за руководствами. Продвинутые пользователи могут полностью игнорировать HUD, просто дважды щелкнув изображение для переключения маскировки маски и используя ручки для определения размера. Это должно быть легко увидеть, с несколькими оговорками (например, состояние режима "Редактировать маска" должно быть видимым в HUD, а не только с изображения, а более эффективная внешняя граница изображения, которое вы маскируете) Keynote значительно лучше в этом, отчасти потому, что он не использует инспектор.

Тем не менее, если у вас есть огромное количество опций, и стандартная вкладка с вкладками не работает для вас, посмотрите Omni Group OmniInspector. Постарайтесь использовать его навсегда, и, надеюсь, вы поймете, как навязать интерфейс через столько, сколько вы делаете поверх графики: -)

Ответ 4

(работает в замедленном движении, впадает в панику) Nnnnnoooooooo!!!!!

:-) Серьезно, как я уже говорил в ответ на отличный ответ Кен, попытка заставить "Windowsism" на OS X UI определенно плохая идея. На мой взгляд, самая большая проблема с пользовательским интерфейсом Windows - сторонние разработчики, изобретающие новые и непоследовательные способы представления пользовательского интерфейса, а не последовательные и соблюдающие установленные соглашения. Для пользователя Mac это знак ужасного приложения. Это так по какой-то причине.

Я рекомендую вам переосмыслить свою реализацию приложения UI приложения с самого начала с учетом Mac OS. Если вы хорошо выполнили свою работу, архитектура и модель (без реализации платформы) должны четко перевести на любую платформу.

В терминах пользовательского интерфейса вы используете Mac в течение года, поэтому у вас должно быть довольно хорошее представление о "норме". Если у вас есть сомнения, лучше всего задать вопрос, в котором подробно описывается то, что вам нужно представить, и ваши мысли о том, как вы можете это сделать (или спросить, как вы не знаете).

Просто не ударяйте свое приложение с уродливой палкой, заставляя ее вести себя так, как если бы она работала в Windows, когда это явно не было. Это поцелуй смерти для приложения для пользователей Mac.