問題タブ [nsresponder]
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.
cocoa - NSDocument ベースのアプリで Cmd-Key をインターセプトするのに最適な場所
ベースのアプリケーションCmdAnyKeyで重要なイベントをインターセプトするのに最も適切な場所はどこですか?NSDocument
意図は、アクティブなウィンドウ内のいくつかのコンポーネントに切り替えることです。Firefox でタブを切り替えることができるように、そのタスクを実行するためのメニュー コマンドに対応するショートカットがなくてもかまいません。
つまり、理想的には、フレームワークはメニュー コマンドの処理を含む通常の処理を行い、他のすべてのレスポンダがその特定のショートカットへの応答に失敗した直後に、カスタム メソッドにルーティングする必要があります。
を検索しましNSDocument
たがNSAppDelegate
、NSWindowController
ウィンドウ レベルでこれらのコマンドを受け取るためにフックする適切なメカニズムが見つかりませんでした。
では、既存のカスタマイズ メカニズムがないことが、目的の効果を達成するための最も適切な方法のようkeyDown:
に、カスタムルックでオーバーライドするのでしょうか?NSWindowController
cocoa - setNeedsDisplay のみを呼び出す NSResponder メソッド
openGl ビューのサブクラスがあります。方法の 1 つで、背景を黒または白で描画するフラグを設定しました。メソッドの最後で setNeedsDisplay を呼び出します。これは決して呼び出されません!mouseDownEventにもsetNeedsDisplayがあります。ビューをクリックすると、IT は IT を呼び出します。背景の色が変わります。何か案は?これがコードです。
openGL ビューで
アプリデリゲートで
cocoa - タイトルのないウィンドウですべてのコントロールが無効になっている
私のアプリでは、メソッドの .xib から作成されたセカンダリがNSWindow
あります。ウィンドウは、タイトル バーがオフになっているプレーンです。NSWindowController
initWithWindowNibName:
NSWindow
makeKeyAndOrderFront:
-を使用して表示されるウィンドウを作成する
と、すべてのコントロールが無効になります (テキスト フィールド、コンボ ボックス)。
ウィンドウ内のすべてのフラグとコントロールのビュー階層を(以上..)トリプル チェックしました。
まったく無知。何か案は?
更新 #1:
この問題は、ウィンドウにタイトル バーがないことに関連しているようです。ウィンドウでタイトル バーが切り替えられると、ウィンドウ内のコントロールが期待どおりに動作します。
objective-c - IKImageBrowserView のダブルクリック動作を変更するにはどうすればよいですか?
IKImageBrowserView
Mac 10.9 専用アプリケーションでを使用しています。
アイテム内のアイテムをダブルクリックするとIKImageBrowserView
、プレビューで開かれます。
この動作を変更して、自分のアプリケーションのウィンドウを開き、代わりにダブルクリックされたアイテムの詳細を表示したいと考えています。
IKImageBrowserView
のダブルクリック動作を無効にするにはどうすればよいですか?
独自のダブルクリック動作を追加する最良の方法は何ですか?
macos - NSViewController の validateMenuItem
validateMenuItem を NSViewControllers で動作させることは可能ですか? ドキュメントによると、NSViewController は NSResponder のサブクラスなので、レスポンダー チェーンに参加すると思いますが、動作させることができませんでした。問題なく NSView で動作させることができます。
私が持っている特定の使用例は、First Responder に接続された MainMenu.xib のメニュー項目です。View Controller サブクラスのセレクターは、MainMenu のセレクターの First Responder ポップアップ リストに表示されるので、機能すると思いますが、機能しません。サブクラスの validateMenuItem メソッドが呼び出されることはありません。(アプリ デリゲート内のものは呼び出されますが、ファーストレスポンダーに接続されているアイテムは呼び出されません。)
cocoa - NSButton: 異なるフォーカス リングの色を設定する
NSButton フォーカス リングの色を白に設定しようとしています。現在、ボタンに firstResponder がある場合、青いアウトラインが表示されます。
これを行うのに役立つdrawFocusRingMaskWithFrame:inView:があることは承知していますが、これを使用して色を白に変更する方法がわかりません。この API が実際に使用されている例は見たことがありません。
ありがとう。
cocoa - Cocoa: アクション (コピー:、貼り付け: など) をレスポンダー チェーンまで転送する
、などNSOutlineView
を実装するサブクラスがあります。また、サブクラスはこれらの同じメソッドを実装します。copy:
paste:
cut:
NSDocument
アウトライン ビューがレスポンダー チェーン (ファースト レスポンダーまたはその親ビュー) にある場合、すべてのコピー/貼り付けイベントはNSOutlineView
サブクラスによってインターセプトされます。私が望むのは、コンテキストに応じて、これらのメッセージの一部をキャッチするか、それらを伝播させてNSDocument
サブクラスにキャッチさせることです。
私が欲しいのは基本的に次のとおりです。
私はすでに多くのトリックを試しましたが、どれも成功しませんでした:
[[self nextResponder] copy:sender]
次のレスポンダーが実装しない可能性があるため、機能しませんcopy:
[super copy:sender]
ここでも同じ、スーパーは実装されていませんcopy:
[NSApp sendAction:anAction to:nil from:sender]
これは、最初の応答者にアクションを送信するのに適しています。アクション内で使用する場合
copy:
確かに、応答するもの、または現在のドキュメントを直接呼び出すものが見つかるまで、レスポンダー チェーンを手動でループすることもできますがcopy:
、それを行う正しい方法を探しています。
よろしくお願いします!