2011-01-13 2 views

ответ

5

Вы можете просто подкласс NSTextField и переопределить метод -drawRect:, чтобы «заполнить» соответствующий процент всей ширины цветом или градиентом (или что-то еще) для прогресса. Если я правильно понимаю ваш вопрос.

-(void)drawRect:(NSRect)dirtyRect { 
    CGFloat progress = 0.33; 

    NSRect progressRect = [self bounds]; 
    progressRect.size.width *= progress; 

    [[NSColor colorWithCalibratedRed:0.0 green:0.0 blue:1.0 alpha:0.4] set]; 
    NSRectFillUsingOperation(progressRect, NSCompositeSourceOver); 

    [super drawRect:dirtyRect]; 
} 

Очевидно, что «прогресс» будет исходить от имущества, которое вы декларируете и обновляете в соответствии с моделью. Вам нужно убедиться, что setDrawsBackground: отключен, или фон установлен на [NSColor clearColor];, чтобы ваш пользовательский чертеж был виден.

Это выстрел из кода выше.

Tested Theory