2

2つの異なるビューを持つビューベースのNSOutlineViewを使用しています(両方のビューはのカスタムサブクラスですNSTableCellView)。トップレベルのビューでは、カウンター付きのバッジを表示します。カウンターは、下位​​レベルのエントリー数を示します。カウンターは、AppleのSidebarDemoプロジェクトに従って、丸みを帯びた長方形のNSButtonとして実装されます。

画像からわかるように、セルを選択したときのボタンの動作は、期待する動作ではありません。私のボタンは黒くなりますが、Appleのサンプルでは白くなります。ボタンのこの特定の動作をメソッドに設定するメソッドを追跡しました setHighlightsBy

[[self.button cell] setHighlightsBy: 0];

awakeFromNibカスタムセルクラスのメソッドで上記を使用します。同じawakeFromNibように、ボタンのベゼルも設定します。

[[self.button cell] setBezelStyle: NSInlineBezelStyle];

ベゼルスタイルは問題なく機能しますが、強調表示は無視されているようです。

私が提供できる詳細情報:アウトラインビューはバインディングを使用してコンテンツを取得し、ハイライトモードは「ソースリスト」に設定されています。

ハイライトが無視されるのはなぜですか?

ここに画像の説明を入力してください

ここに画像の説明を入力してください

4

2 に答える 2

1

ボタンは(デモプロジェクトのように)IBで設定されていますか?もしそうなら、属性インスペクターのコントロールセクションで「有効」ボックスがチェックされていますか?そのチェックボックスをオフにすると、表示されている動作が得られます。

于 2012-05-06T15:33:57.543 に答える
0

@rdelmarの回答のおかげで、説明されている動作の原因を見つけました。ボタンは、「引数」バインディングインスペクターを使用してセルビューにバインドされます。

ここに画像の説明を入力してください

そこにある設定の1つに「条件付きで有効に設定」があります。これは有効になっていて、ボタンが自動的に無効になるようです。この設定を無効にすると、問題は解消されます。

于 2012-05-06T18:11:01.583 に答える