問題タブ [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.
macos - メニュー アクションをウィンドウ内の NSViewController にルーティングするにはどうすればよいですか?
アプリのメイン メニュー内にメニュー項目があり、そのアクションをビュー コントローラー ( ) にルーティングしたいと考えていますNSViewController
。インターフェイスの階層は次のようになりますNSWindowController
。ウィンドウの内側には分割ビューがあり、分割ビューの右側のビューは によって制御されますNSViewController
。
このメニュー項目は、Interface Builder の First Responder に接続されています。問題のView Controllerは適切なメソッドを実装していますが、メニュー項目は無効のままです。メソッドを に移動するNSWindowController
と、メニュー項目が有効になります。
ビュー コントローラーをレスポンダー チェーンに渡す必要があると考えたので、それをnextResponder
ウィンドウ コントローラーの として設定しました。葉巻はありません。私は何を間違っていますか?
cocoa - キーを押したときの不要なビープ音
キー入力を受け入れるカスタムビューがあり、その中にNSScrollView
. を yes に設定しacceptsFirstResponder
、keyDown を正常に受け入れています。しかし、キーを押すたびにビープ音が聞こえます。他に必要なものがあると確信していますが、何が思い出せません..助けてください。
objective-c - FlagsChangedのKeyUp:メソッドはありますか?
- (void)flagsChanged:(NSEvent *)theEvent
アプリケーションにメソッドを実装しました。[alt]キーを押したままにすると正常に動作します。このメソッドは、キーが押されたときにのみ送信されますが、もう一度離したときは送信されません。は- (void)keyUp:(NSEvent *)theEvent
呼び出されません。[alt]キーがいつリリースされるかを確認する方法はありますか?
コードは次のとおりです。
cocoa - parentWindow へのフォーカスを失わずに、childWindow のビューをキーにできるようにする
NSWindow のカスタム サブクラスの childWindow を parentWindow (これも NSWindow のカスタム サブクラス) に追加しました。childWindow には NSBorderlessWindowMask があり、canBecomeKeyWindow: はオーバーライドされて YES を返し、canBecomeMainWindow: は NO を返します。
childWindow は、parentWindow でサイズ変更するように設定されています。だから私は、子ウィンドウのビューが親ウィンドウの一部であるという錯覚を作りたい. 主なアイデアは、ドキュメント ベースのアプリケーションによって作成されたドキュメント ウィンドウをメイン ウィンドウ内に配置して、ドキュメント間を切り替えるためのタブ付きインターフェイス (ブラウザーの場合と同様) を提供することです。
私の問題は、childWindow のビューの 1 つをクリックするたびに、parentWindow (メイン ウィンドウ) がフォーカスを失い、信号機のボタンが灰色になることです。これは明らかに私が達成したいこととは反対です。
私はこの答えを見つけました: キーウィンドウステータスなしでNSPanelファーストレスポンダーでNSViewを作成します
しかし、(メイン ウィンドウの) isKeyWindow: をオーバーライドして常に YES を返すようにしても、childWindow をクリックするとタイトル バーがグレー表示されます。
私もこのアドバイスに従おうとしました: http://www.cocoabuilder.com/archive/cocoa/143945-non-focused-child-window.html
しかし、「nextResponder の直前のレスポンダー チェーンに子ウィンドウを含める」が何を意味するのかわかりません。canBecomeKeyWindow: を使用して (childWindow に対して) NO を返すと、子内のビューは決してキーになることができず、常にグレー表示されます。
私が間違っている手がかりはありますか?
追加: childWindow にキーステータスを与えずに、childWindow FirstResponder でビューを作成することは可能ですか?
objective-c - nextKeyView が機能しない
1 つのテーブルビューと 4 つのテキストフィールドを持つアプリケーションを開発しました。
アプリを実行すると、TAB を指定しても制御が正しく行われません。そのためにinitialResponder
、tableView として設定し、tableview の nextKeyView を textfield に接続しました。これに対応して、残りのフィールドに接続を与えました。しかし、それでも制御は順調に進んでいません。
何が問題ですか?私は何かを逃しましたか?または、それを行う他の方法はありますか?
objective-c - セカンダリ クリック nsresponder、右クリックが機能しない
二次クリックを受け入れるように NSOutlineView を取得しようとしていますが、理解できないようです。セカンダリ クリックを 2 本の指からトラックパッドの右隅と左隅に変更しようとしましたが、マウスダウン イベントのアウトライン ビューで応答がありません。誰でも私を助けることができますか?
アップデート:
これを使用すると、2 回目のクリックがログに記録されますが、rightMouseDown: 関数にはまだ表示されません。
アップデート:
これを解決する方法はまだわかりません。私の NSCollectionView は rightMouseUp には応答しますが、rightMouseDown には応答しません。どうして?
tnx
cocoa - -swipeWithEvent: 2 本指スクロールが発生するまで呼び出されない
を実装するNSView
内部にサブクラスがあります。ユーザーが最初にトラックパッドで 2 本指のスクロールを実行するまで呼び出されないことに気付きました。その後、一貫して動作します。何が原因でしょうか?NSScrollView
-swipeWithEvent
swipeWithEvent:
objective-c - Cocoa と XCode の KeyEvents
OSX 用の基本的な電卓アプリを作成して、Objective-C を学習しています。インターフェイスのボタンをクリックした場合と同じことを行うために、キーボードの特定のキーを押すことを許可する必要があることを除いて、すべてが美しく機能します。
私が読んだすべてのことは、これらをキャプチャするには、NSResponder のサブクラスにロジックが必要であると言っています。私の問題は、そのファイルを「接続」する方法にあります。次のように NSResponder をサブクラス化する新しい .h および .m ファイルを作成します。
Responder.h
Responder.m
アプリケーションはどのようにしてそのファイルの使用を認識しますか? その青い矢印をドラッグしてどこかに「接続」する.xibファイルのインターフェイスのどこかにありますか? 私はそれを正しくやっていますか?私はこれをしばらくグーグルで調べてきましたが、ほとんどすべてが、NSResponder サブクラスをアプリケーションに取得する方法を知っていると想定しています。ここでは、基本的な概念が本当に欠けていると思います。どんな助けでも大歓迎です!
macos - Cmd ⌘ キーを押したままにすると、NSResponder が keyUp イベントを受信しない
私は NSView のカスタム サブクラスを使用しており、keyDown/keyUp メソッドを介してキーボード イベントを受信しています。「Cmd ⌘」キーが押された場合を除いてすべて正常に動作し、keyDown イベントは通常どおり発生しますが、keyUp イベントは発生しません。
私たちの場合、矢印キーを単独で使用して画像を左/右/上/下に移動し、ユーザーが左/右を押しながら「Cmd ⌘」を押したままにすると、代わりに画像が回転します。keyDown イベントを取得すると、画像が回転し始めますが、keyUp が来ないため、停止することはありません。他の修飾子にはこの問題はありません (たとえば、別のキーが押されている間に Shift、Ctrl、または Alt が押されている場合、期待どおりに keyUp が取得されます)。1 つのオプションは、別の修飾子を使用することですが、PC バージョンとの一貫性を維持することをお勧めします (Cmd は、Windows で Ctrl を使用する場合の代わりに使用され、標準のコピー/貼り付けコマンドとの一貫性を維持します)。
なぜこれを行うのか誰にもわかりますか?バグのように感じますが、おそらく奇妙な「正しい動作」であり、それを回避する方法 (代替修飾子を使用するか、直接 HID アクセスなどを使用する以外) です。
ありがとう。
macos - Mac OSX Dev: カスタム ViewController がマウス イベントを受信しない
簡単なデモアプリを(できるだけ早く)作成する必要があります。これには NSImageView (フル ウィンドウ サイズの写真) があり、マウス ポイントはこれをクリック、ドラッグ、および移動します。
マウス イベントとウィンドウ上の位置を表示する NSTextField (ラベル) もあります。
Cocoa アプリ テンプレートを使用してプロジェクトを作成し、新しい ViewController を作成し、そのビュー コントローラー ビューを Windows contextView に追加すると、ラベルと同様に NSImageView が正常に表示されます。
ただし、イベントなど
何もしないでください。そこに NSLog があれば、ヒットすることはありません。
私は設定しました:
しかし、それも違いはありません。
誰かが私が間違っていることを指摘できますか? 私は 2 年以上の iOS 開発者で、これが初めての Mac OS X アプリです。次の24時間でこれを機能させなければなりません:(