2011-01-13 20 views

risposta

5

È possibile eseguire la sottoclasse di NSTextField e sovrascrivere il metodo -drawRect: per "riempire" la percentuale appropriata dell'intera larghezza con un colore o una sfumatura (o qualsiasi altra) per il progresso. Se capisco bene la tua domanda.

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

Ovviamente il "progresso" verrebbe da una proprietà dichiarata e aggiornata in base al modello. Dovresti assicurarti che lo setDrawsBackground: sia disattivato oppure che lo sfondo sia impostato su [NSColor clearColor]; per poter vedere il tuo disegno personalizzato.

Questa è una ripresa dal codice sopra.

Tested Theory

Problemi correlati