2011-01-13 13 views

Odpowiedz

5

Można po prostu podklasować NSTextField i zastąpić metodę -drawRect:, aby "wypełnić" odpowiedni procent całej szerokości z pewnym kolorem lub gradientem (lub czymkolwiek) dla postępu. Jeśli dobrze rozumiem twoje pytanie.

-(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]; 
} 

Oczywiście "postęp" pochodziłby z własności, którą deklarujesz i która jest aktualizowana zgodnie z modelem. Musisz się upewnić, że setDrawsBackground: jest wyłączone lub że tło ustawione jest na [NSColor clearColor];, aby zobaczyć Twój niestandardowy rysunek.

To jest strzał z powyższego kodu.

Tested Theory

Powiązane problemy