47

透明を作成します 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;これを修正する方法を知っていますか?

4

8 に答える 8

78

秘密は、これらのプロパティの3つすべてをNSTextField...に設定することです。

myTextField.bezeled         = NO;
myTextField.editable        = NO;
myTextField.drawsBackground = NO;
于 2013-09-04T17:46:37.900 に答える
18

.xibファイルのインターフェイスビルダーウィンドウのテキストフィールドの属性インスペクターの下にプロパティがあります

  1. ディスプレイが背景を描画することを確認します
  2. 背景色を選択します。透明な背景にはクリアカラーを選択します。

ここに画像の説明を入力してください

于 2015-10-02T21:33:38.100 に答える
7

10.12の時点で、次のことができます。

let label = NSTextField(labelWithString: "HELLO")
于 2017-08-01T08:38:06.360 に答える
1

これも探しに来て、背景に透明なグレーを出してもらいました。重要なのはベゼルを持たないことです。以下の私のコード:

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;
于 2019-01-18T09:23:56.650 に答える
0

CATextLayer代わりに使用することになりNSTextFieldました。

于 2012-08-30T06:15:06.180 に答える
0

私も同じ問題を抱えています。デフォルトの外観は空です。ダークモードを設定してみて、動作します。

self.nameTextField.appearance = [NSAppearance appearanceNamed:NSAppearanceNameVibrantDark];
于 2020-10-26T05:05:18.483 に答える
-2

私はちょうど今この問題を抱えていました。NSTextFieldのスーパービューから名前付きのプロパティを削除してbackgroundColor修正しました。

backgroundColorNSViewサブクラスのCALayerプロパティの便利なゲッター/セッターとして使用していました。このプロパティはNSViewに文書化されていませんが、NSViewのプロパティを誤ってオーバーライドしたようです。

サブクラス化してよかった!

于 2015-07-23T09:31:59.553 に答える
-4

クリアカラーは、現在のビュー(つまり)NSTextViewの背景を透明にするため、NSTextViewを保持するNSViewの色が表示されます。

于 2012-08-29T11:41:13.417 に答える