Keypressに基づいたNSPopupButtonのアイテムの可視性の変化
-
25-10-2019 - |
質問
ここには、外部ファイルから多数のデータを読み、それをで表示する必要があるアプリケーションがあります。 NSPopUpButton
ココアユーザーインターフェイスで。ここでのキャッチは、「隠された」と見なされた場合に記載されているフラグが必要になっている必要があるデータが必要であることです。
データが隠されている場合、に追加する必要があります NSPopUpButton
として NSMenuItem
, 、 しかし hidden
フラグを設定する必要があります YES
そのため、通常は表示されません NSPopUpButton
メニュー。ユーザーがキーボード(通常はALT、この場合はALT)に「マジックキー」を押し続ける場合、それらの隠されたオブジェクトを非表示にする必要があります。ユーザーがALTキーを手放す場合、選択されたものを除いて、ユーザーは自動的に再婚する必要があります。 NSMenuItem
選ばれました。
実際、私はこれを理解している時間を過ごしています。
私はこれを使用してこれを行うための簡単な方法があるかどうか疑問に思っていました NSArrayController
と NSPopUpButton
, 、しかし、これまでのところ、私は解決策に似たものを見つけることができませんでした - NSMenuItem
オブジェクト。
Cocoa Bindingsを使用してこれをどのように達成できるか知っている人はいますか?
解決
ポップアップをアレイコントローラーに配線し、フィルター述語を変更できます。 MVCデザインの観点からは、「隠された」などの属性を使用することはありません。これはビューの特徴ですが、「Advanced」です。通常、アレイコントローラーのフィルター述語を「Advanced = no」に設定します。次に、ユーザーが好みの修飾子を保持したら、述語を削除します。ポップアップは自動的に更新されます。アレイコントローラーは、別のオブジェクトの配列プロパティにバインドする必要があります(データモデル内)。ポップアップは、アレイコントローラーにオブジェクトを配置することにバインドする必要があります。