問題タブ [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.
objective-c - NSToolbarItem 画像のスケーリング
なぜこうなった:
ご覧のとおり、「許可されたツールバー項目」では、「PHP」ツールバー項目の画像は問題ないように見えますが、実際にツールバーにある場合、画像は奇妙に拡大縮小されます。
ありがとう
cocoa - NSProgressIndicator を NSToolbarItem のビューとして使用し、それをカスタマイズ シートに表示するにはどうすればよいですか?
アプリでNSToolbar
セットアップしました。IBで作成されました。ツールバー項目の 1 つはビューとしてスピナー スタイルを使用しNSProgressIndicator
、残りは画像です。
ツールバーのカスタマイズ シートが表示されている場合、スピナーはシートに表示されません。
-displayedWhenStopped
これは、スピナーが に設定されているためだと最初は思いましたNO
。そうではありません: YES に設定すると、アクティブなときにスピナーがツールバーに表示されますが、停止するとツールバーにもシートにも表示されません。
objective-c - FirstResponder に対するビューを使用して NSToolbarItem を検証する
ビュー ( ) を含むツールバー項目がNSButton
あり、ビューのターゲットが に設定されてnil
いるため、アクションをトリガーするときにレスポンダー チェーンを検索します。ただし、ファーストレスポンダーに対して検証する方法を試すのに問題があります。
NSToolbarItem をサブクラス化し、実装し-(void)validate
ました。私が見つけた参照によると、 を呼び出して最初のレスポンダーを取得し[[[self view] window] firstResponder]
、レスポンダー チェーンが または のいずれNSToolbarItemValidation
かを実装しているかどうかNSUserInterfaceValidations
を確認し、適切な検証メソッドを呼び出します。
ただし、 を呼び出すと、ウィンドウとして[[self view] window]
返さnil
れるため、最初のレスポンダーを取得できません。
違いがあるかどうかはわかりませんが、コードで記述するのではなく、XIB でツールバーを作成しています。
NSToolbar.h を見ると、含まれているウィンドウを参照する ivar があるため、 を呼び出すことで最初のレスポンダーを見つけることができましたが、これ[[[self toolbar] valueForKey:@"window"] firstResponder]
はちょっとしたハックであり、文書化された/安定したものを使用したいと思います。
cocoa - NSToolbarItem(setView)のNSButtonを「テキストのみ」でクリックすると、モードが「アイコンとラベル」になります。
Finder、Safari、Transmissionなどの素敵なテクスチャボタンをツールバーに再現しようとしています。まず、IBなどの「テクスチャボタン」をドラッグするだけから始めました。ユーザーがツールバーを「テキストのみ」モードに設定した場合を除いて、すべてが正常に機能します。次に彼がボタンをクリックすると、ツールバーはそれ自体で「アイコンとラベル」を有効にします。コードの問題ではないことを確認するために、ツールバーからすべてのコードとデリゲートを削除しました。
次に、念のため、新しいプロジェクトを作成し(コードはまったくありません)、NSButtonを含む1つのNSToolbarItemを含むNSToolbarを含むクリーンなNSWindowで問題を再現できます。
次のようなコードを介してNSButtonを追加します。
ただし、これにも同じ効果があります。「テキストのみのモード」でNSButtonを含むNSToolbarItemを押すと、ツールバー自体がそのモードを「アイコンとテキスト」に強制します。
どうすれば正しく動作させることができるのか、Safariなどの見栄えの良いツールバーアイテムを作成する代わりの方法があるのでしょうか。
objective-c - toolbarSelectableItemIdentifiers: は呼び出されません
選択可能な NSToolbarItems を作成しようとしています。IB ですべてを正しく接続しましたが、機能しtoolbarSelectableItemIdentifiers:
ていません。呼び出されません。デリゲートはファイルの所有者 (NSWindowController のサブクラス) であり、ツールバーはシートにあります。これが私のコードです:
スクリーンショット:
助けてください。
いいえ、BWToolkit を使用したくありません。
objective-c - コードを使用してNSToolbarItemを非表示にするにはどうすればよいですか?
さまざまなオプションを備えたツールバーがあり、一部のオプションが表示されない場合があります。このコールバックを使用して、アプリケーションでそれらを無効にする方法をすでに理解しています。
しかし、私は必要なときにそれらを本当に隠す方法を見つけていません。誰かがこれを行う方法について、またはそれが本当に可能かどうかについて何かアイデアがありますか?
cocoa - カスタム ビューをツールバーに追加する
私はココアで2時間苦労していますが、成功していません。ツールバーにカスタム ビューを追加したいと考えています。そこで、ウィンドウに NSToolbar を (IB を使用して) 追加し、ビューを追加しました (これは完全に機能します)。IB は NSToolbarItem を自動的に作成しました。Apple の指示に従いました: http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Toolbars/Tasks/AddRemoveToolbarItems.html#//apple_ref/doc/uid/20000755-BBCGJCDJ
問題は、ウィンドウにラベルが表示されているにもかかわらず、ビューが表示されないことです。
描画に使用するコードは次のとおりです(非常に単純で、テスト目的です)
誰かが私を助けることができますか?
前もって感謝します。
objective-c - NSToolbarItem サブクラスがイベントを呼び出さない
のサブクラスを作成し、その状態を変更するためにNSToolbarItem
をキャッチしようとしています (これは、すぐに使用できる状態をサポートしていないため-(void)mouseDown:(NSEvent *)theEvent
、サブクラスに追加したものです)。NSToolbarItem
mouseDown:
問題は、Interface Builder でツールバー項目のクラス ID を新しいクラスの ID に設定したにもかかわらず、イベントが呼び出されないことです。
どうしてこれなの?NSToolbarItem は に関連してNSView
いるので、イベントを実行できるはずですよね?
objective-c - NSToolbar のラベル領域に描画することはできますか?
NSToolbarItem
Xcode ステータス ビューに似たビューを使用する があります。現在、ラベルはありませんが、アイテム ラベルが通常描画される領域に描画する方法がわかりません。Xcodeステータスビューと同じように、ビューをその領域に拡張したいと思います。のピクセルの一番下の部分がNSToolbar
範囲外であることはわかっていますが、他のアプリケーションがラベル領域に描画されるのを見てきました。何か案は?
編集:明確にするために、これは私がXcodeで参照しているステータスビューです:
Xcode のビューと同じように、ビューの境界がツールバーのラベル領域を超えて拡張されるようにします。
objective-c - 複数の NSViewController でツールバーを使用する
メインビューとして機能する複数の NSViewControllers をロードする単一ウィンドウのドキュメントベースのアプリケーションがあります。各ビュー コントローラーは、特定のビジネス ニーズを処理する自己完結型のクラスであり、動作に必要なすべてのメソッドを実装します。
私の問題は、特定のView Controllerがロードされたときにツールバーを機能させる方法です。これらがウィンドウ クラスに実装されている限り、ツールバーをデリゲートに配線し、ツールバー項目をアクションに配線することに問題はありません。しかし、ビューのメソッドでツールバー項目に新しいアクションを設定しようとするとloadView
、ツールバー項目は単にそれを無視し、メイン ウィンドウ クラスでメソッドを呼び出し続けます。
では、ツールバー項目のアクションを動的に変更するにはどうすればよいでしょうか?