2015-11-01 6 views
5

テキストフィールド(NSTextFieldまたはNSComboBox)とボーダーレスボタンを含む活気のあるNSVisualEffectViewがあります。ボタンはテキストフィールドの上に配置されているため、テキストフィールドの白い背景に表示されるはずなので、境界線のないボタンの活字を無効にしたいと考えています。NSVisualEffectViewのボーダーレスNSButtonを有効にする

NSVisualEffectViewクラスのリファレンスで推奨されているように、NSVisualEffectView内のNSButtonをNSVisualEffectView内にラップして、状態をInactiveに設定しています。これは、「鮮やかな」背景を明るい灰色の背景で置き換えることです。

下の図はこれを示しています。最初のフィールドは私の試行された解決策です.2番目のフィールドは、NSVisualEffectViewの子としてボーダレスボタンのデフォルト動作を示しています。

enter image description here

私はまた、NSButtonをサブクラス化しようとした白または明確にそのセルの背景色を設定するが、私はいつもグレーの背景を取得します。

明るい灰色の背景を白または背景に変更するにはどうすればよいですか? ありがとう

答えて

3

私は頭痛の数時間後にこれを解決することができました。このソリューションでは、ボタンをNSVisualEffectViewにラップする必要はありません。単にNSButtonをサブクラス化してallowsVibrancyプロパティをオーバーライドしてfalseに設定するだけで十分でした。スウィフトは

override var allowsVibrancy: Bool { return false } 
関連する問題