2009-12-18 3 views

ответ

4

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

- (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

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

+0

Вы также должны объяснить, как заставить NSButton использовать этот подкласс NSButtonCell, потому что это не очевидно. Это выглядит примерно так: http://stackoverflow.com/questions/16838525/ –