タイマーを表示するために使用している NSTextView があります。このタイマーは、00:00 までカウントダウンして 1 秒ごとに更新されます。タイマーが NSTextView の文字列を更新すると、NSTextView は再描画されるかのように動作しますが、親ビューの背景を独自の背景として使用します。
私の NSTextView には明確な背景色があり、背景を描画しないように設定されています。その親ビューは、独自の背景用に 3 つの部分の画像を描画します。以下は、NSTextView のコードです。
_timerLabel = [[NSTextView alloc] init];
[self.timerLabel setSelectable:NO];
[self.timerLabel setEditable:NO];
self.timerLabel.font = fontLoaded ? [NSFont fontWithName:@"DS-Digital" size:26.0f] : [NSFont fontWithName:@"Lucida Grande" size:26.0f];
self.timerLabel.textColor = [NSColor colorWithCalibratedRed:(50.0f/255.0f) green:(50.0f/255.0f) blue:(50.0f/255.0f) alpha:1.0f];
self.timerLabel.backgroundColor = [NSColor clearColor];
[self.timerLabel setDrawsBackground:NO];
[self.timerLabel setAllowsDocumentBackgroundColorChange:NO];
[self.timerLabel setAlignment:NSCenterTextAlignment];
self.timerLabel.string = @"5:11";
[self addSubview:self.timerLabel];
なぜこれが起こっているのでしょうか?Apple ドキュメントで考えられること、または見つけられることはすべて試しましたが、問題は解決しませんでした。どんな助けでも大歓迎です。
NSTextView のテキストを更新する前に https://www.dropbox.com/s/za3twd8hb7r1apr/Screen%20Shot%202013-04-10%20at%205.37.10%20PM.png
NSTextView のテキストを更新した後 https://www.dropbox.com/s/p0bsk63o8yweyqs/Screen%20Shot%202013-04-10%20at%205.37.28%20PM.png