Как вы вертикально центрируете изображение на NSButton? - PullRequest
4 голосов
/ 24 декабря 2011

Я создаю приложение для Mac в стиле Lion Mail.app.В рамках этого я пытаюсь создать симулированную панель инструментов для панели инструментов в Mail.app, но не могу получить изображение в кнопке на панели инструментов по центру по вертикали.

Просмотр Mail.appПанель инструментов Я вижу замечательную серию кнопок с центрированными значками:

enter image description here

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

enter image description here

В Интерфейсном Разработчике я пытался сделать следующее:

  1. Создать новое окно
  2. Добавить NSToolbar в это окно
  3. Добавить NSButton на панель инструментов со стилем - «Push», изображением - «конвертом», позицией - «NSImageOnly», масштабированием - «пропорционально вниз»

Как вы можете видеть, значок явно не центрирован вертикально на кнопке, как на панели инструментов Mail.app.

У кого-нибудь есть идеи ???

На данный момент я 'Я использую XCode 4.2 и выкладываю эту кнопку с помощью Interface Builder.Я пытаюсь создать кнопку панели инструментов, ТОЛЬКО добавляя изображение к кнопке, а не рисуя кнопку для каждого элемента, то есть рисуя границу и значок.

Любая помощь будет принята с благодарностью, так как она ведетмне немного орешки.

Заранее спасибо - АЯЛ

Ответы [ 3 ]

9 голосов
/ 04 января 2012

Оказывается, ответ на эту проблему был намного проще, чем я ожидал. После скрежета зубов, растягивания волос и скручивания пикселей я наткнулся на решение.

Вместо использования кнопки «Push» мне просто нужно было переключиться на кнопку «Round Textured». Как только я сделал это, любое изображение, которое я добавил к кнопке, было хорошо отцентрировано. Затем мне просто пришлось вручную масштабировать изображение, чтобы оно выглядело правильно.

Рецепт для панели инструментов Mail.app выглядит следующим образом:

  1. Добавить кнопку на панель инструментов
  2. Установить стиль кнопки на «Округлые текстуры»
  3. Установить изображение кнопки
  4. Установить положение 'NSImageOnly'
  5. Установите размер кнопки 40 x 25, а также минимальный и максимальный размеры ToolbarItem

Результатом является панель инструментов, которая может выглядеть очень похожей на панель инструментов Mail.app.

Спасибо всем - AYAL

0 голосов
/ 24 декабря 2011

Вы можете сделать изображение кнопки в чем-то вроде gimp или photoshop, а затем использовать его в качестве фона или изображения для кнопки.

я чувствую, что ты собираешься сказать "это то, что я делаю". и, возможно, вы сделали маленькую иконку почты, но я имею в виду, что вы сделали всю кнопку, контур и все остальное, а затем использовали это для изображения кнопки. имеет смысл?

как здесь, просто используйте это как фон enter image description here

0 голосов
/ 24 декабря 2011

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

...