作成します透明NSTextField
self.myTextField = [[NSTextField alloc] initWithFrame:CGRectMake(backgroundView.frame.Origin.x + backgroundView.frame.size.width + 20, self.projectTitle.frame.Origin.y - 30.0, 100, 20)];
self.myTextField.editable = NO;
self.myTextField.bezeled = NO;
self.myTextField.drawsBackground = YES;
self.myTextField.backgroundColor = [NSColor clearColor];
self.myTextField.selectable = NO;
self.myTextField.font = [NSFont fontWithName:@"Helvetica Neue" size:16];
[self addSubview:self.compressingTime];
その結果、テキストの見栄えが悪くなります。 背景色を設定した場合
self.myTextField.backgroundColor = [NSColor colorWithCalibratedRed:0.85 green:0.85 blue:0.85 alpha:1.0];
すべてが大丈夫に見える 私もdrawsBackground = NO;
を試しましたが、これを修正する方法を知っていますか?
CATextLayer
の代わりにNSTextField
を使用してしまいました。
秘密は、NSTextField
...でこれらのプロパティの3つすべてを設定することです...
myTextField.bezeled = NO;
myTextField.editable = NO;
myTextField.drawsBackground = NO;
10.12以降では、次のことができます。
let label = NSTextField(labelWithString: "HELLO")
これも探してここに来て、背景に透明な灰色を与えました。重要なのは、ベゼルがないことです。以下の私のコード:
NSTextField *yourLabel = [[NSTextField alloc] initWithFrame:NSMakeRect(0, 0, width , height * 1.0/3.0)];
yourLabel.editable = false;
yourLabel.bezeled = false;
[yourLabel setTextColor:[NSColor blackColor]];
[yourLabel setBackgroundColor:[NSColor colorWithRed:0.1 green:0.1 blue:0.1 alpha:0.1]];
完全にするために、レイアウトに何度も使用されるため、以前に幅と高さを取得していました。
height = self.window.frame.size.height;
width = self.window.frame.size.width;