Рисование текста в подклассе NSButton - PullRequest
2 голосов
/ 18 декабря 2009

Как добавить текст из заголовка кнопки в мой подкласс NSButton?

Ответы [ 2 ]

4 голосов
/ 19 декабря 2009

Вот как я думаю, что это может работать:

- (void) drawRect:(NSRect)aRect {

    // other drawing commands
    // ...
    // other drawing commands

    NSDictionary *att = nil;

    NSMutableParagraphStyle *style =
      [[NSParagraphStyle defaultParagraphStyle] mutableCopy];
    [style setLineBreakMode:NSLineBreakByWordWrapping];
    [style setAlignment:NSCenterTextAlignment];
    att = [[NSDictionary alloc] initWithObjectsAndKeys:
                        style, NSParagraphStyleAttributeName, 
                        [NSColor whiteColor],
                        NSForegroundColorAttributeName, nil];
    [style release];

    [self.title drawInRect:self.bounds withAttributes:att];
    [att release];
}

на основе немного знаний Objective-C на iPhone и глядя на

http://www.cocoadev.com/index.pl?DrawingABoundedString

Вам может показаться неудобным использование примера статической переменной на веб-сайте.

Как вы, наверное, поняли, я нет. У меня сложилось впечатление, что текущий графический контекст подразумевается в вызове.

Возможно, вы хотите изменить положение / цвет текста в зависимости от состояния кнопки.

EDIT

Код отредактирован для устранения утечки памяти.

3 голосов
/ 19 декабря 2009

Вы подкласс NSButtonCell и переопределите один или несколько из различных методов draw, доступных для NSButtonCell и NSCell.

...