Как лучше всего создать кнопку «Остановить прогресс», как в окне «Загрузки» Safari? - PullRequest
4 голосов
/ 11 июня 2010

Руководство по интерфейсу пользователя Apple говорит:

В окне «Загрузки» Safari использует автономное изображение NSImageNameStopProgressFreestandingTemplate, встроенное в индикатор прогресса, чтобы пользователи могли остановить-progress download.

Окно загрузок Safari http://developer.apple.com/library/mac/documentation/userexperience/conceptual/applehiguidelines/art/sys_freestanding.jpg

Документация NSImage говорит нечто подобное.Однако создание NSButton с использованием NSImageNameStopProgressFreestandingTemplate и NSShadowlessSquareBezelStyle приводит к чему-то вроде этого:

NSImageNameStopProgressFreestandingTemplate

К сожалению, эта кнопка не соответствует кнопкам «Остановить выполнение» длявстроенные приложения Mac OS X:

  1. Это намного темнее, чем кнопки в Finder и Safari, и немного темнее, чем кнопки в iCal.
  2. Не меняет цвет напри наведении курсора / наведите курсор мыши, как кнопки в Finder, Safari и iCal.

Есть ли пропущенная настройка NSButton, из-за которой изображение, предоставляемое системой, выглядит "правильным"?

Если это не так, лучше использовать NSImageNameStopProgressFreestandingTemplate и выглядеть «неправильно», или написать подкласс кнопки и связать некоторые TIFF-файлы, чем, по-видимому, и занимается большинство приложений (включая Apple)?

Ответы [ 2 ]

2 голосов
/ 19 июля 2012

Официальный ответ, как и в Mac OS X 10.7, похоже, использовать NSImageNameStopProgressFreestandingTemplate и NSInlineBezelStyle.Документация гласит:

Стиль встроенной рамки содержит сплошной фон в виде круглой границы.Его можно использовать для создания «непрочитанного» индикатора в виде структуры или другой встроенной кнопки в виде таблицы, например кнопки остановки процесса на панели загрузки.темнее, чем в Safari, но не так темно, как в других стилях рамок.Он не меняет цвет при наведении, но, возможно, Apple постепенно его прекращает.

1 голос
/ 11 июня 2010

В документах по [NSImage setTemplate:] предлагается изменить альфу, чтобы определить, насколько темно. Однако я не уверен, как это сделать, когда вы не рисуете изображение напрямую. Я не вижу лучшего способа, чем написать свой собственный подкласс NSButton или, может быть, NSButtonCell.

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