問題タブ [nstoolbaritem]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
428 参照

objective-c - NSToolbarItem を未選択に設定

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

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

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

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

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

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

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

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

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

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

どうもありがとう!

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

0 投票する
1 に答える
45 参照

macos - NSToolbar で不適切にレンダリングされたコントロール

ボタンとセグメント化されたコントロールをツールバーに追加しようとしましたが、レンダリングが不十分です (想像力を高めるための画像) - 薄すぎます。何をしても、NSToolbarItem の最大サイズと最小サイズを設定しても何も機能しません。何が問題なのですか?

0 投票する
1 に答える
416 参照

swift - NSToolbarFlexibleSpaceItem は、Swift の NSSplitViewItem に対する制約です

ここに画像の説明を入力

ほとんどすべての macOS 公式アプリには、このツールバーの機能があり、NSToolbarItem柔軟なスペースが表示に制約されていNSSplitViewItemます。NSToolbar には 3 つの異なるセクションがあるのではないかと最初に考えました。しかし、それは 1 つのツールバーにすぎません。Notes アプリを開いて、ツールバーをカスタマイズできます。

  • 最初のフレキシブル スペースが検出され、最初の分割ビュー アイテムと共に移動されます。
  • 2 番目のフレキシブル スペースが検出され、2 番目の分割アイテムと共に移動されます。
  • 残りは通常の柔軟なスペースになります。
  • フレキシブル スペースが 2 つしかない場合、2 つ目は通常のフレキシブル スペースとして機能します。同じことが1つまたは柔軟なスペースにも当てはまります。

これが、Apple がフレキシブル スペース アイテムを構成する方法だと思います。

このJWToolbarAdaptiveSpaceItemを見つけましたが、取り外し可能であり、ノート アプリのようにフレキシブル スペース アイテムに置き換えることはできません。

これについて尋ねられた別のstackoverflowの質問(今は見つけられませんでした)がありますが、答えはNSToolbarではない偽のビューとボタンを追加することです。

したがって、これを達成する方法を知っている人はいますか?

(私の英語でごめんなさい)

0 投票する
5 に答える
1925 参照

macos - NSToolbarItem: "このツールバー項目に有効なフレーム/最小/最大サイズがあることを確認してください"?

Mac OS Sierra と新しい XCode バージョンにアップグレードしてから、NSToolbarItems ごとにアプリケーションを起動するたびに次のエラーが発生します。

StoryBoard をいじってみましたが、うまくサイズを変更できませんでした。検索すると、新しい OS でもこの問題を抱えている人が何人か見つかりましたが、役立つ回答はありませんでした。

同じ問題に直面している人、アドバイスはありますか?

どうもありがとう、

マルク

0 投票する
0 に答える
173 参照

xcode - Xcode インターフェイス ビルダーが NSToolbarItem のサイズを独自にリセットし、それについて不平を言う

Xcode 8 と Sierra に更新して以来、アプリの実行時にコンソールに次のエラー メッセージが表示されます。

NSToolbarItem (NSToolbarItem: 0x608000121360) は、NSButton: 0x608000140160 のサイズを {35, 25} から予想されるサイズ {37, 27} に調整する必要がありました。このツールバー項目ビューのフレーム/最小/最大サイズが有効であることを確認してください。これはアプリのバグです。AppKit または NSToolbar に対してバグを報告しないでください。_NSToolbarAdjustedBorderedControlSizeBreakpoint で中断する

私がこのアイテムのために持っているのは、NSToolbarItemを含むNSButtonです。ボタンの幅は 35 に設定され、高さフィールドはグレー表示され、無効になっています。囲んでいるツールバー項目の最小サイズは 35 x 25 で、最大サイズは 39 x 27 です (最小値と最大値を同じ値にしたいのですが、読み続けてください)。ツールバー項目の最小値と最大値を同じ 35 x 25、37 x 27、39 x 27 のいずれかに設定しようとしましたがファイルを保存して新しいファイルに切り替えた後、IB がそれらの値を独自に変更したことを確認してください。少し違うものに変更し (最大幅と高さを 2 倍に増やしたと思います)、ストーリーボード ファイルがサイドバーで暗く表示され、変更が保存されていないことを示します。保存した直後にプロジェクトを実行した場合にのみ、値は示されているとおりになります (コンソールの警告は消えます)。

各ビルドの前にこれらの値を元に戻さなければならないことに本当に腹が立っています..なぜIBは私の値を保持せず、それについて不平を言っているのですか?

0 投票する
3 に答える
1741 参照

cocoa - NSToolbarItem: 収まるサイズのボタン / コンテンツの優先順位を設定する

ボタンの幅に合わせてNSToolbarItemを作成しようとしています。NSButtonただし、ツールバー項目の最大幅を高い値 (たとえば 300) に設定し、ツールバーに十分なスペースがある場合、ボタンは常に 300 ポイントいっぱいに拡張されます。

ボタンをたとえば 300 ポイントまで大きくできるようにするにはどうすればよいですか? の中にある場合、ボタンの設定contentHuggingPriorityは無視されるようNSToolbarです。

0 投票する
1 に答える
278 参照

swift - NSToolbar - ToolBarItem にいつアクセスできますか?

NSToolbaritemsプロパティはまだ空ですwindowDidLoad

すべてのツールバー項目が読み込まれたときに呼び出される関数を探しています。ToolbarDidLoad、またはのようなものItemsDidLoad

0 投票する
2 に答える
1728 参照

cocoa - NSToolbarItems を NSSplitView 列に揃えます

Finder と Notes には、私が再現しようとしている独特の動作があります。NSToolbar の「柔軟なスペース」は、分割ビューのサイズを考慮しているようです。たとえば、ボタンの最初のグループは、サイドバーの左側と右側に配置されます。アイコンの 2 番目のグループは、最初の列の右側に配置されます。サイドバーを広げると、ツールバーの項目も一緒に移動します。

これを再現することは可能ですか?

ここに画像の説明を入力


解決

@KenThomases が提供するソリューションを使用して、次のように実装しました。