NSProgressIndicatorをサブクラス化するのが好きです。私はこのコードを使用していると私は、Interface Builderでサブクラスを設定します。サブクラスNSProgressIndicator
- (void)drawRect:(NSRect)dirtyRect {
NSRect rect = NSInsetRect([self bounds], 1.0, 1.0);
CGFloat radius = rect.size.height/2;
NSBezierPath *bz = [NSBezierPath bezierPathWithRoundedRect:rect xRadius:radius yRadius:radius];
[bz setLineWidth:2.0];
[[NSColor blackColor] set];
[bz stroke];
rect = NSInsetRect(rect, 2.0, 2.0);
radius = rect.size.height/2;
bz = [NSBezierPath bezierPathWithRoundedRect:rect xRadius:radius yRadius:radius];
[bz setLineWidth:1.0];
[bz addClip];
rect.size.width = floor(rect.size.width * ([self doubleValue]/[self maxValue]));
NSRectFill(rect);
アプリは、このようにそのルックスを開始すると:
しかし、コピー中に古いバーが現れ進行します。
何が間違っていますか?
あなたが追加するのを忘れ[スーパーのdrawRectを:RECT] –
それは[スーパーのdrawRect:RECT]では動作しませんです。 – Konobi
NSLogをサブクラスに追加し、サブクラスは起動時に一度だけ呼び出しますが、コピーの進行中はクラスは呼び出されません。 – Konobi