NSTextFieldの背景色が変わらない場合の対処法


NSTextFieldやNSTextFieldCellにはbackgroundColorプロパティがありますが、単にNSColorの値を設定するだけでは背景色が描画されないいケースがあります。

自作のNSTextFieldであれば問題ないですが、ライブラリ側から取得したNSTextFieldインスタンスやTableView上で再利用されるデフォルトのNSTextFieldCell等では、手動でdrawsBackgroundプロパティにYESを指定してあげる必要があります。

NSTextField *field = self.searchField;
field.backgroundColor = NSColor.grayColor;
field.drawsBackground = YES;

逆にテキストラベルの背景色を背景ビューと同化させたい場合はdrawsBackgroundのプロパティをNOにしてあげると良いですよ。

広告