問題タブ [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.
objective-c - NSView から NSViewController にマウスイベントを渡す方法は?
私はTabViewControllerを持っており、XIBで継承しているTabViewのカスタムNSViewを作成しています。
これで、TabView にすべてのマウス ハンドル イベントを正常に実装し、機能しました。
TabViewController で同じイベントが必要ですが、できません。
フォーラム、ブログ、Apple ドキュメントで提案されている方法を試してみました。しかし、私はそれを得ることができませんでした。
マウス ハンドル コードを含む TabView。
呼び出されるすべてのマウス メソッド。でこれが欲しいTabViewController
。
誰かが同じ手順を行った場合は、私に提案してください。
macos - NSResponder rejectFirstResponder が間違ったオブジェクトで起動する
いくつかの NSTextFields を持つ Mac アプリケーション (SDK 10.10) があります。
テキスト フィールドがフォーカスを取得したときとフォーカスを外したときに通知を受け取る必要があるため、NSTextField をサブクラス化しました。
このコードを実行して 3 つのテキスト フィールド間でタブ移動すると、コンソールに次の出力が表示されます。
TAB キーを押す (または非アクティブなテキスト フィールドの 1 つをクリックする) たびに、アプリは出力します。
そんなはずないでしょ
???
ここで何かひどく間違っていますか?
のドキュメントは- (BOOL)resignFirstResponder
言う
ウィンドウでファーストレスポンダーとしてのステータスを放棄するよう求められたことを受信者に通知します。
では、なぜresignFirstResponder
古いファーストレスポンダーではなく、新しいファーストレスポンダーに呼び出されるのでしょうか?
cocoa - ウィンドウをドラッグするときにNSViewがドラッグされたイベントを取得する
私のアプリでは、通常はツールバーによってウィンドウが画面上でドラッグされたときに、カスタムが転送された mouseDragged イベントNSView
を受け取るという奇妙な問題があります。
スタック トレースから、Cocoa フレームワークが独自にこれを行っているようです。
(おそらく通常のレスポンダー チェーンのこと)
今、私はドラッグされたイベントが私のビューから発生したのか、それとも他の場所から発生したのかを検出しようとしています.これを行うための堅牢な方法はありますか?
マウスダウンが発生したビューを保存するパブリックメンバーが見つかりませんでした(ただしNSEvent
、プライベートフィールドに内部的に保存されているようです)。
または、ドラッグされたメッセージを転送しないようにウィンドウを構成するオプションはありますか?
ヒントをいただければ幸いです。
macos - Mac でユーザーの KeyBinding をアプリ固有のものでオーバーライドすることは可能ですか?
ユーザー固有の keyBindings .dict ファイルは次の場所にあります。~/Library/KeyBindings/
AppKit
特定のアプリケーションの別のバインディング ファイルを別のディレクトリ (アプリ固有) で探すように(開発者として) どのように指示できますか。これは、テキスト操作以外の機能のためである可能性があるため、ユーザー固有のものをオーバーライドする必要はありません。
これは、次の理由で役立ちます。
- システムの残りの部分のユーザー設定を台無しにすることなく、アプリの keyBindings を変更します (特に、オブジェクトが必ずしもテキスト入力オブジェクトではない場合)。
- にない追加のアクション メソッドを追加する
NSResponder
Cocoa イベント処理開発者ガイド (68 ページ) からの引用。強調は私です。
NSResponder メソッドの interpretKeyEvents: を呼び出すことで、Cocoa のテキスト入力管理システムにイベントを渡すことができます。入力管理システムは、押されたキーを関連するすべてのキー バインディング ディクショナリのエントリと照合し、一致する場合は doCommandBySelector: メッセージをビューに送り返します。それ以外の場合は、insertText: メッセージをビューに送り返し、ビューはこのメソッドを実装してテキストを抽出して表示します。
ios - self.view に追加された UIView スーパービューは nil を返します
ビューが既に追加されている/存在するかどうかを確認してから、それを削除する必要があります
self.view に self.upgradeView を追加しました。ただし、条件は false を返し、self.upgradeView は削除されません。
見逃しているものはありますか?
=========================更新======================= ============
このコードをビューに追加しましたが、このようにself.viewにself.upgradeViewを追加するために使用されるコードのすぐ下に表示されます