問題タブ [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 - CocoaOSXでダブルクリックをキャッチ
NSResponderにはマウスのダブルクリックイベントがないようです。ダブルクリックをキャッチする簡単な方法はありますか?
cocoa - 私の GUI (Cocoa OSX) でテキスト フィールドの背景をアクティブ化および非アクティブ化するより良い方法を探しています。
選択可能なグループで構成される小さな gui アプリがあります。各グループには、サブグループ、画像、およびテキスト フィールドを表示するための開示ボタンがあります。テキスト フィールドの編集中に別のグループまたは別のテキスト フィールドを選択したときに、古いテキスト フィールドの編集を終了したい。また、編集中のテキストフィールドの背景のみを表示したいです。
becomeFirstResponder でバックグラウンドを有効にし、textDidEndEditting で無効にする呼び出しを追加して、これを達成しようとしています。私は、textFieldを選択するとbecomeFirstResponderの直後にresignFirstResponderを呼び出すように見えるので、resignFirstResponderの代わりにtextDidEndEdittingで無効にする呼び出しを入れました。これは通常の動作なのか、それとも私のコードの他の問題の兆候なのか疑問に思っています。これが正常な動作である場合、その背景を非アクティブ化するための呼び出しを配置するより良い場所があります。
cocoa - NSResponderのインデントの使用法は何ですか?
NSResponderには、オーバーライドする--indent:というメソッドがありますが、通常いつアクティブになるかはわかりません。
objective-c - NSResponder -interpretKeyEvents:を使用する場合のmoveBackward:とmoveLeft:の違いは何ですか?
-interpretKeyEvents:を使用してカスタムテキストボックスを実装し、moveBackward:とmoveLeft:とmoveForward:とmoveRight:の違いを理解しようとしています。moveLeft:は左矢印にバインドされ、moveBackward:はCtrl + Bにバインドされます。ドキュメントでは、それらはほぼ同じように説明されており、実際には同じように動作するようです。
これはVimからの単なるホールドオーバーだと思いますか?誰かが本当の違いが何であるか知っていますか?moveBackward:moveLeft:実装を呼び出すだけですか?
どうもありがとう、
ニック
objective-c - レスポンダーチェーンを調べる方法は?
ドキュメントベースのアーキテクチャを使用して、単一のウィンドウ内でクレイジーな複数のドキュメントを処理していますが、95% 完了しています。
親ドキュメントを開いてウィンドウを構成し、「子」ドキュメントのリストを提供する、この 2 層ドキュメント アーキテクチャがあります。ユーザーが子の 1 つを選択すると、そのドキュメントが同じウィンドウ コントローラーで開かれNSTextView
、ウィンドウに が配置されます。ウィンドウ コントローラのドキュメントの関連付けが変更され、「編集されたドット」とウィンドウ タイトルが現在選択されているドキュメントを追跡するようになります。Xcode プロジェクトと、そのプロジェクト内のさまざまなファイルを編集するとどうなるかを考えてみてください。
コードを疑似形式にするために、このようなメソッドは、子ドキュメントが開かれたときに親ドキュメントで呼び出されます。
これは機能し、編集中のドキュメントに変更ドットとタイトルが続くため、ウィンドウコントローラーはいつでも正しいドキュメントの関連付けを持っていることがわかります。
ただし、保存を押すと(CMD + S、またはファイル->保存/名前を付けて保存)、現在のドキュメントではなく親ドキュメントを保存します([[NSDocumentController sharedDocumentController] currentDocument]
ウィンドウタイトルと変更ドットで報告および示されます)。
ドキュメントを読むNSResponder
と、チェーンは次のようになります。
現在のビュー -> スーパービュー (繰り返し) -> ウィンドウ -> WindowController -> ドキュメント -> DocumentController -> アプリケーション。
ドキュメント ベースのアーキテクチャがレスポンダ チェーンをどのように設定しているか (つまり、どのようにチェーンに配置NSDocument
しNSDocumentController
ているか) がわからないので、デバッグしたいと思いますが、どこを見ればよいかわかりません。いつでもレスポンダー チェーンにアクセスするにはどうすればよいですか?
cocoa - 他のビューでドラッグしても MouseDragged が解放されない
共通のスーパービューのサブビューである NSView の 2 つのサブクラスがあります。それらは重複せず、両方ともマウスドラッグされた呼び出しをインターセプトします。サブクラスの 1 つから別のサブクラスにドラッグすると、画面全体をドラッグしてもマウス ボタンを離すまで、mousedragged 関数が呼び出されます。デフォルトの動作は、マウスがレシーバーの境界上にある場合にのみ、mousedragged 関数が呼び出されることでした。マウスの入力、終了、移動イベントにも NSTrackingArea を使用していますが、私が読んでいるものからはドラッグイベントは含まれていません
時間をありがとう、ホセ。
objective-c - NSView - クイックルックと NSResponder
NSView (MyCustomView) をサブクラス化し、MainMenu.xib のカスタム ビュー オブジェクトを使用して、InterfaceBuilder の NSWindow のコンテンツ ビューに追加しました。
それ以来、MyCustomView への Quick Look 応答を受け入れるコードを追加しました。
これを呼び出した後:
Quick Lookウィンドウを表示するように要求します.QLPreviewPanelは、必要なことを行うために -(BOOL)acceptsPreviewPanelControl: に応答するものを探してレスポンダーチェーンを通過するようです. 前述のものを含め、Quick Look が機能するための関連メソッドがあるにもかかわらず、MyCustomView が応答していないようです。
MyCustomView の init メソッドに以下を追加しようとしましたが、違いはありません。
私が見逃しているアイデアはありますか?それは私のxibセットアップに関係していると思いますか?
cocoa - NSPanelのNSViewをキーウィンドウステータスのないファーストレスポンダーにする
NSPanelキーウィンドウのステータスを付与せずに(メインアプリケーションウィンドウを辞任キーにする)、NSPanelファーストレスポンダーステータス内にNSViewを付与することは可能ですか?
ありがとう。
objective-c - 既存のNSViewのNSResponderを置き換えます
描画アプリケーションにビューがあります。他のツールが選択されたときに、別の方法で応答する必要があります。ビューのすべてのレスポンダーメソッドを新しいレスポンダーメソッドと呼ぶのではなく、そのビューのNSResonderを置き換える方がはるかに良いと思いました。これは可能ですか、他の素晴らしい解決策はありますか?
objective-c - -makeFirstResponder: 使い方
私はココアプログラミングにかなり慣れていないので、
-(BOOL)makeFirstResponder:(NSResponder *)responder;
メソッドの仕組みを説明できる人がいるかどうか尋ねたいと思います。私はそれを使用することを計画していましNSEvent
たが、誰かがそれを実装する方法を教えてもらえますか?
NSResponder
クラスを使用して、機能-keyDown
するメソッドを取得しようとしています。