2011-01-13 23 views

cevap

5

NSTextField alt sınıfını yalnızca -drawRect: yöntemini kullanarak tüm genişliğin uygun yüzdesini ilerleme için bir miktar renk veya gradyanla (veya her neyse) "doldurun". Eğer soruyu doğru anlıyorsam.

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

Açıkçası "ilerleme" Eğer beyan ve modeline göre güncellenecek bir özelliğinden gelirdi. Özel çiziminizin görülmesi için setDrawsBackground:'un kapalı olduğundan emin olmak veya arka planın [NSColor clearColor]; olarak ayarlandığından emin olmanız gerekir.

Bu, yukarıdaki koddan bir vuruştur.

Tested Theory