Я хотел бы создать NSStatusItem
, который отображает счетчик хода. Моя идея заключалась в подклассе NSProgressIndicator
и использовать его как NSView
для перехода на setView:
.Прогресс-счетчик в строке состояния в какао
// SpinnerView.h
//#import <Cocoa/Cocoa.h>
@interface SpinnerView : NSProgressIndicator {
NSStatusItem *_statusItem;
BOOL _isHighlighted;
}
- (id)initWithStatusItem:(NSStatusItem *)statusItem;
@end
// SpinnerView.m
#import "SpinnerView.h"
@implementation SpinnerView
- (id)initWithStatusItem:(NSStatusItem *)statusItem {
CGFloat thickness = [[NSStatusBar systemStatusBar] thickness];
NSRect frameRect = NSMakeRect(0.0, 0.0, thickness, thickness);
self = [super initWithFrame:frameRect];
[self setStyle:NSProgressIndicatorSpinningStyle];
[self setControlSize:NSSmallControlSize];
_statusItem = statusItem;
return self;
}
- (void)drawRect:(NSRect)dirtyRect {
NSLog(@"drawRect");
[_statusItem drawStatusBarBackgroundInRect:dirtyRect withHighlight:_isHighlighted];
[super drawRect:dirtyRect];
}
@end
Однако, когда я делаю это, отображается счетчик, но окружен белой коробке:
Любая идея, почему это происходит, и как это исправить? Если я прокомментирую весь метод drawRect:
, результат будет таким же.
Возможный дубликат: http://stackoverflow.com/questions/2714951 – augurar