5

画像が青い色合いで描画される Xcode で使用されるセグメント化されたコントロールを再作成しようとしています。

たとえば、Interface Builder では次のようになります。

インターフェイスビルダーの例

これまでのところ、カスタムのNSSegmentedCellオーバーライド- (void)drawSegment:(NSInteger)segment inFrame:(NSRect)frame withView:(NSView *)controlViewがありますが、セグメント画像を (1) グレーの色合いで、(2) 選択されている場合は青の色合いで描画する方法に行き詰まっています。

また、画像はベゼルまたはグラデーション効果で描かれているように見えます. 自分でセグメント イメージを描画すると、単純に黒になります (テンプレート イメージを使用するため)。

上からセグメントを再作成するにはどうすればよいですか?

4

3 に答える 3

10

セグメント化されたコントロール - オン状態の外観

NSSegmentedControlstyleNSSegmentStyleTexturedRoundedと modeを持つオブジェクトを使用しますNSSegmentSwitchTrackingSelectAny

  • セグメント化されたコントロール オブジェクトをツールバーまたはボトム バーに配置します。
  • インスペクターの属性ペインで、スタイルを Textured Rounded に、モードを Select Any に設定します。
  • コントロールの画像を必ず提供してください (Interface Builder で、属性インスペクターの [画像] コンボ ボックスから画像を選択します)。

セグメント化されたコントロール - オン状態の外観


トグル スタイルのツールバー ボタン

単一のボタンでこれを実現する方法は、セグメント化されたコントロールの場合とは少し異なります。

  • 名前付きの画像を使用するIconTemplateTemplate、その(元の)名前に追加します
  • NSTexturedRoundedBezelStyleボタンのスタイルを選択

セグメント化されていないツールバー ボタン

↳ たとえば.png、Round Textured Button Cell Style を使用して、リソースに MiddlePanelIconTemplate.png、CardPanelIconTemplate.png、ReturnPanelIconTemplate.png の 3 つの画像があります。

OS X ヒューマン インターフェイス ガイドライン | ウィンドウ フレーム コントロール

于 2014-08-05T08:37:04.047 に答える
3

「L'lが提供する回答は私にとっては問題ありませんでしたが、IconTemplateをイメージ名に追加すると、Xcode 7.3では機能しなくなりました。その代わりに、Assets カタログに移動し、使用する画像を選択し、右側のパネルで属性インスペクターを選択し、「Render As」というコンボで「Template Image」を選択する必要があります。

ここに画像の説明を入力

于 2016-10-28T22:12:52.157 に答える