4

外部ファイルから大量のデータを読み取り、それをNSPopUpButtonCocoa ユーザー インターフェイスに表示する必要があるアプリケーションをここに用意しました。ここでの問題は、読み込まれるデータには、「非表示」と見なされるかどうかを示すフラグが必要であるということです。

NSPopUpButtonデータが非表示の場合は、として追加する必要がありますがNSMenuItem、通常はメニューに表示されないようにhiddenフラグを に設定する必要があります。ユーザーがキーボードの「魔法のキー」 (この場合は通常 ALT キー) を押したままにすると、これらの隠しオブジェクトを再表示する必要があります。ユーザーが Alt キーを離すと、選択された可能性のあるものを除いて、自動的に再度非表示にする必要があります。別のキーを選択すると非表示になります。YESNSPopUpButtonNSMenuItem

実際、私はこれを理解するのにかなりの時間を費やしています。

NSArrayControllerと を使用してこれを行う簡単な方法があるかどうか疑問に思っていましNSPopUpButtonたが、これまでのところ、オブジェクトの隠しプロパティの管理に関しては、解決策に似たものを見つけることができませんでしたNSMenuItem

Cocoa Bindings を使用してこれを実現する方法を知っている人はいますか?

4

1 に答える 1

1

ポップアップをアレイコントローラーに接続し、フィルター述語を変更できます。MVC設計の観点からは、ビューの特性である「非表示」のような属性は使用しませんが、「高度な」属性を使用する可能性があります。通常、アレイコントローラのフィルタ述語を「advanced=no」に設定します。次に、ユーザーが好みの修飾子を持っているときに、述語を削除します。ポップアップは自動的に更新されます。配列コントローラーは、(データモデル内の)別のオブジェクトの配列プロパティにバインドする必要があります。ポップアップは、配列コントローラー上のarrangedObjectsにバインドする必要があります。

于 2011-11-29T03:19:01.633 に答える