2014-01-23 1 views
1

Я хотел бы создать 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 

Однако, когда я делаю это, отображается счетчик, но окружен белой коробке:

Spinner in status bar

Любая идея, почему это происходит, и как это исправить? Если я прокомментирую весь метод drawRect:, результат будет таким же.

+0

Возможный дубликат: http://stackoverflow.com/questions/2714951 – augurar

ответ

0

Вам нужно просто постоянно устанавливать изображение для элемента статуса. Используйте таймер.

+1

Не то, что я прошу. Я хочу использовать 'NSProgressIndicator', а не писать самостоятельно. – augurar

Смежные вопросы