私は内部に NSPopupButton を持っNSToolbar
ておりborderder = false
、強調表示されたときに色の焼き付きがブレンドされています。私が使用する場合bordered = true
、画像は素敵な暗いオーバーレイで描画されます。
強調表示された状態を同じように描画することを達成しようとしていますbordered=true
PS: NSButtonCell はすぐに使用できbordered = false
ます。
bordered = true
私は持ってオーバーライドすることで動作を達成でき、drawBezel
そこで何もしませんが、知りたいです
私が試したこと:
- ハイライト作成者
- インテリア背景スタイル
- setCellAttribute
-
class ToolbarPopUpButtonCell : NSPopUpButtonCell {
override var isHighlighted: Bool {
get { return true }
set { super.isHighlighted = newValue }
}
override func drawImage(withFrame cellFrame: NSRect, in controlView: NSView) {
super.drawImage(withFrame: cellFrame, in: controlView)
}
//used in case bordered = true so we do nothing
override func drawBezel(withFrame frame: NSRect, in controlView: NSView) {
}
//doesn't work
override var interiorBackgroundStyle: NSView.BackgroundStyle
{
return .raised
}
}
class ToolbarPopUpButton: NSPopUpButton {
override func awakeFromNib() {
cell?.setCellAttribute(.cellLightsByBackground, to: 1)
}
override var intrinsicContentSize: NSSize {
return NSMakeSize(32 + 5, 32)
}
}
bordered = false
( NSButtonCell
)で機能する右側の画像に注意してください。