iPhoto как NSButton - PullRequest
       38

iPhoto как NSButton

3 голосов
/ 13 февраля 2012

Как создать кнопку, похожую на iPhoto, как на картинке

enter image description here

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

Спасибо за ваши ответы.

EDIT: Изображение кнопки должно быть просто в формате PDF. Градиент и белая тень должны быть нарисованы автоматически.

Ответы [ 3 ]

1 голос
/ 14 февраля 2012

Как упоминал Джастин, вы должны создать NSButton с типом Momentary Change . Затем вы должны указать, что это шаблонное изображение, включив суффикс Template в имя файла, например, EditTemplate.png.

Я знаю, вы сказали, что пытались установить изображение в качестве шаблона, но я обнаружил, что это не всегда эффективно, если я не использовал тип кнопки Momentary Change .

0 голосов
/ 13 февраля 2012

Я думаю, что самое простое решение - создать кнопку с типом: Мгновенное изменение и добавить на нее изображение с прозрачным фоном с типом файла .png, а когда кнопка включена, вы можете перейти к другому изображению с фоном.,

Например, чтобы установить / изменить изображение:

[_yourButton setImage:_image];

Если я правильно понял, что Вы хотите сделать.

0 голосов
/ 13 февраля 2012

Вы можете создать подкласс NSButtonCell.И реализуйте эти функции:

- (void)drawImage:(NSImage*)image 
        withFrame:(NSRect)frame 
           inView:(NSView*)controlView
{
     // Draw the image of the pen. 
}

- (NSRect)drawTitle:(NSAttributedString*)title 
          withFrame:(NSRect)frame 
             inView:(NSView*)controlView
{
     // Draw the text.
}

- (void)drawBezelWithFrame:(NSRect)frame 
                    inView:(NSView *)controlView
{
}

Чтобы настроить подкласс, просто отредактируйте поле «Пользовательский класс» ячейки кнопки в Интерфейсном Разработчике с «NSButtonCell» на «YourSubClass»

...