我需要一个类似于NSContinuousCapacityLevelIndicatorStyle
中的NSLevelIndicator
的控件,但使用反向着色。对于NSLevelIndicator
,颜色如下所示:绿色达到警告级别,黄色从警告到临界级别,红色从临界级别开始。这对音量控制来说很好。但我有一个对应于油箱填充的值:绿色表示油箱已满,黄色表示警告,红色表示空。我没有找到任何方法来改变NSLevelIndicator
的颜色。
那么,在我开始编写自己的自定义控件之前,是否有NSControl
可以满足我的需求(当然,我在询问之前在谷歌上搜索过,但没有结果)?
感谢阅读。
NSLevelIndicator
(至少现在是这样)如果您设置的警告级别高于临界级别,会自动为您执行此操作!
子类NSLevelIndicator
并编写自己的- (void)drawRect:(NSRect)theRect
#import <Cocoa/Cocoa.h>
@interface PBLevelIndicator : NSLevelIndicator {
unsigned int mPercent;
}
@end
#import "PBLevelIndicator.h"
@implementation PBLevelIndicator
- (void)drawRect:(NSRect)theRect
{
NSRect fillingRect = theRect;
fillingRect.size.width = theRect.size.width*mPercent/100;
NSColor *indicatorColor;
if( mPercent >= 99 )
{
indicatorColor = [NSColor greenColor];
}
else if (mPercent >50)
{
indicatorColor = [NSColor yellowColor];
}
else
{
indicatorColor = [NSColor redColor];
}
[indicatorColor set];
NSRectFill(fillingRect);
}
-(void) setPercentage:(unsigned int) inPercent
{
mPercent = inPercent;
[self setNeedsDisplay:YES];
}
@end