問題タブ [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.

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

cocoa - NSDocument ベースのアプリで Cmd-Key をインターセプトするのに最適な場所

ベースのアプリケーションCmdAnyKeyで重要なイベントをインターセプトするのに最も適切な場所はどこですか?NSDocument

意図は、アクティブなウィンドウ内のいくつかのコンポーネントに切り替えることです。Firefox でタブを切り替えることができるように、そのタスクを実行するためのメニュー コマンドに対応するショートカットがなくてもかまいません。

つまり、理想的には、フレームワークはメニュー コマンドの処理を含む通常の処理を行い、他のすべてのレスポンダがその特定のショートカットへの応答に失敗した直後に、カスタム メソッドにルーティングする必要があります。

を検索しましNSDocumentたがNSAppDelegateNSWindowControllerウィンドウ レベルでこれらのコマンドを受け取るためにフックする適切なメカニズムが見つかりませんでした。

では、既存のカスタマイズ メカニズムがないことが、目的の効果を達成するための最も適切な方法のようkeyDown:に、カスタムルックでオーバーライドするのでしょうか?NSWindowController

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

cocoa - setNeedsDisplay のみを呼び出す NSResponder メソッド

openGl ビューのサブクラスがあります。方法の 1 つで、背景を黒または白で描画するフラグを設定しました。メソッドの最後で setNeedsDisplay を呼び出します。これは決して呼び出されません!mouseDownEventにもsetNeedsDisplayがあります。ビューをクリックすると、IT は IT を呼び出します。背景の色が変わります。何か案は?これがコードです。

openGL ビューで

アプリデリゲートで

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

cocoa - タイトルのないウィンドウですべてのコントロールが無効になっている

私のアプリでは、メソッドの .xib から作成されたセカンダリがNSWindowあります。ウィンドウは、タイトル バーがオフになっているプレーンです。NSWindowControllerinitWithWindowNibName:NSWindow

makeKeyAndOrderFront:-を使用して表示されるウィンドウを作成する
と、すべてのコントロールが無効になります (テキスト フィールド、コンボ ボックス)。

ウィンドウ内のすべてのフラグとコントロールのビュー階層を(以上..)トリプル チェックしました。

まったく無知。何か案は?

更新 #1:
この問題は、ウィンドウにタイトル バーがないことに関連しているようです。ウィンドウでタイトル バーが切り替えられると、ウィンドウ内のコントロールが期待どおりに動作します。

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

objective-c - IKImageBrowserView のダブルクリック動作を変更するにはどうすればよいですか?

IKImageBrowserViewMac 10.9 専用アプリケーションでを使用しています。

アイテム内のアイテムをダブルクリックするとIKImageBrowserView、プレビューで開かれます。

この動作を変更して、自分のアプリケーションのウィンドウを開き、代わりにダブルクリックされたアイテムの詳細を表示したいと考えています。

IKImageBrowserViewのダブルクリック動作を無効にするにはどうすればよいですか?
独自のダブルクリック動作を追加する最良の方法は何ですか?

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

macos - NSViewController の validateMenuItem

validateMenuItem を NSViewControllers で動作させることは可能ですか? ドキュメントによると、NSViewController は NSResponder のサブクラスなので、レスポンダー チェーンに参加すると思いますが、動作させることができませんでした。問題なく NSView で動作させることができます。

私が持っている特定の使用例は、First Responder に接続された MainMenu.xib のメニュー項目です。View Controller サブクラスのセレクターは、MainMenu のセレクターの First Responder ポップアップ リストに表示されるので、機能すると思いますが、機能しません。サブクラスの validateMenuItem メソッドが呼び出されることはありません。(アプリ デリゲート内のものは呼び出されますが、ファーストレスポンダーに接続されているアイテムは呼び出されません。)

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

cocoa - NSButton: 異なるフォーカス リングの色を設定する

NSButton フォーカス リングの色を白に設定しようとしています。現在、ボタンに firstResponder がある場合、青いアウトラインが表示されます。

これを行うのに役立つdrawFocusRingMaskWithFrame:inView:があることは承知していますが、これを使用して色を白に変更する方法がわかりません。この API が実際に使用されている例は見たことがありません。

ありがとう。

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

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:、それを行う正しい方法を探しています。

よろしくお願いします!