私は NSButton / NSButtonCell をサブクラス化していますが、すべて正常に動作しますが、少なくとも Retina 描画では、NSButton または NSButtonCell のいずれかに描画関数を実装するとすぐに、カスタム テキスト描画を行うか、ストレートに委任するかに関係なく、テキスト レンダリングが変更されます。超実装へ。
ご覧のとおり、アンチエイリアスを変更するだけで、テキストが大幅に薄くなります。
Xcode の Reveal-rip off でこれを調べると、どの描画メソッドもオーバーライドされていないときに、テキストが NSButtonTextField に埋め込まれていることがわかります。いずれかの描画メソッドがオーバーライドされるとすぐに、NSButtonTextField は消えます。
ボタンテキストの後ろに背景レイヤーを挿入して設定すると、これは起こりません
button.isBorderd = false
しかし、私はその解決策があまり好きではありません。
レイヤーをいじることなく、同じ「太い」テキスト レンダリングを取得する方法はありますか? おそらく、属性付きの文字列属性、特別なテキスト描画コマンドなどでしょうか?
どんな助けでも大歓迎です/