2

現在、描画 OSX アプリケーションのツールを表すNSToolbarwith selectable を定義しようとしています。NSToolbarItemsユーザーが使用するツール(NSToolbarItems)をクリックして選択および選択解除できるようにしたい。

たまたまSketchを知っているなら、それが私が探しているツールバーの動作です:

選択したツールのスクリーンショット

上の画像では、「編集」ツールが選択されていることがわかります。アイテムをもう一度クリックすると、選択が解除されます。

選択されていないツールのスクリーンショット

ツールバーに関する Apple のドキュメントを読んでいますが、ツールバー項目を選択/選択解除できるというこの効果を実現する方法についての情報が見つかりませんでした。「選択可能なツールバー項目」には次のように書かれています:

アプリケーションはsetSelectedItemIdentifier:、目的のツールバー項目の識別子を渡すメソッドを使用して、現在選択されているツールバー項目を指定できます。現在選択されているツールバー項目は、 メソッドによって返されselectedItemIdentifierます。現在選択されていない場合は、nil が返されます。

しかし、メソッドが定義されている場所が見つからないsetSelectedItemIdentifier:か、それが私の要件を解決するものであるかどうかさえわかりません。

ツールバーのアイテムに何が起こっているかというと、一度クリックすると、別の選択可能なアイテムをクリックすることによってのみ選択を解除できます。アイテムをクリックすると、常に選択されたアイテムが存在します。

これを解決する簡単な方法はありますか?この効果を達成する方法を説明しているドキュメントの重要な部分が欠けていますか?

どうもありがとう!

ANSWER: 最終的には、 の を に設定するだけselectedItemIdentifierで済みましNSToolbarnil。これにより、選択した要素が選択解除されます。

4

1 に答える 1

3

の選択を解除するには、オブジェクトの を にNSToolbarItem設定するだけです。selectedItemIdentifierNSToolbarnil

Apple のドキュメントのSelectable Toolbar Itemsセクションには、次のように記載されているため、最初は混乱しました。

[...] 現在選択されているツールバー項目は、メソッドによって返されselectedItemIdentifierます。現在選択されていない場合は、nil が返されます。

selectedItemIdentifierそのため、現在選択されているツールバー項目を返すメソッド (設定なし、取得のみ)だと思っていました。しかし、それはタイプミスであるべきだと思います。selectedItemIdentifierは get/set プロパティであり、実際に nil に設定するとすべての項目の選択が解除されます。

于 2016-05-17T18:25:28.060 に答える