問題タブ [nsevent]
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 コントローラで Key down イベントを取得する
ビューコントローラーでキーダウンイベントを取得できるソリューションを見つけようとしています。ビュー コントローラーがデフォルトでレスポンダー チェーンの一部であるとは思いません。
これについての方法のサンプルをいただければ幸いです。VC をレスポンダー チェーンに追加してイベントを取得する方法について理解できるドキュメントを見つけるのに苦労しました。
ありがとう。
ミーク
events - NSTextField を NSView Draggable に追加する方法
私が行っている手順を詳しく説明しましょう
- Mac 10.9 プロジェクトの作成
- CustomView (myView と呼びましょう) を .xib にドラッグします。
- NSButton を .xib にドラッグしますが、CustomView の外側にドラッグします
プログラムで(他のクラスを使用して)このコードでボタンがクリックされたときに、CustomView に NSTextField を追加します。
NSTextField *textField = [[NSTextField alloc] init]; [textField setBezeled:NO]; [textField setEditable:NO]; [textField setSelectable:NO]; [textField setFont:[NSFont fontWithName:@"Arial" size:20]]; [textField setStringValue:@"Hello World!"]; int textWidth = textField.fittingSize.width; int textHeight = textField.fittingSize.height; [textField setFrame:NSMakeRect(0, 0, textWidth, textHeight)]; [myView addSubview:textField];
TestField が myView に追加されていることがわかります
- 私が望むのは、ユーザーが myView 内で移動可能な textField をドラッグできることだけです
私は次のコードを追加しました
しかし、NSLogは表示されていません
NSTextField をドラッグ可能にするにはどうすればよいですか?
cocoa - ファーストレスポンダと NSPopover への対処方法
銘柄記号と名前を検索するために、iTunes の検索フィールドの動作を再現しようとしています。具体的には、検索フィールドに入力を開始すると、フィルタリングされたアイテムを含むポップオーバーが表示されます。ほとんどの場合、これは機能していますが、複製できないのは、ファーストレスポンダーの処理方法です
3文字入力するとポップオーバーが表示されます。この時点で、NSSearchField はファーストレスポンダーのステータスを失うため、入力を続けることができなくなります。私が望む動作は、ポップオーバーが表示された後、矢印キーでアイテムをスクロールして入力を再開し、検索フィールドの最後の文字から続行する機能です。
私が試したのは、NSTextView のサブクラス化 (これを NSSearchField のカスタム フィールド エディターとして使用) とオーバーライドです。
NO を返すだけで、ポップオーバーが表示されたら入力を続けることができますが、明らかに、ポップオーバー内の項目を選択することはできません。下向き矢印またはマウスダウンイベントが発生した場合にYESを返す次のことを試しました。
これは mousedown イベントでは機能しますが、keydown イベントでは機能しません。さらに、ユーザーが入力を再開したときに、これは問題に対処しません。
助言がありますか?
objective-c - NSEvent addGlobalMonitorForEventsMatchingMask が CLI アプリで機能しない
私は Obj-C と Cocoa の初心者です。起動時にいくつかのグローバルマウスイベントを待機し、終了すると終了する非常に単純なコマンドラインアプリを開発しようとしています。CLIアプリがすぐに終了するのを避けるためにNSRunLoopを正しく実装しましたが、マウスイベントをリッスンするイベントを把握できないようです。
私はこのスニペットを使用しています:
私は CLI アプリです。何も起動しませんが、正しくコンパイルされますが、appDelegate クラスの applicationDidFinishLaunching メソッドで、空白の Cocoa アプリ内に貼り付けると問題なく動作します。
私は何が欠けていますか?ありがとう!
pd: 私が必要としているのが CLI であると 100% 確信できるわけではありません。また、ウィンドウ、メニュー項目、または関連するものを何も持たず、条件が満たされるまで数秒間実行されるプロセスだけの、不可視またはヘッドレス アプリケーションになることもできます。
cocoa - NSTextView を使用せずに主要なイベントから Unicode をキャプチャする方法
アプリケーションの任意のウィンドウから主要なイベントを取得し、それらを Unicode として解釈したいと考えています。たとえば、ユーザーがOption-ee (デフォルトで設定された米国英語キーボード) を入力した場合、それを「é」と認識したいと思います。
キープレスイベントをキャプチャして呼び出してみ-[NSEvent characters]
ました。ただし、ドキュメントに記載されているように、「このメソッドは、Option-e などの無効なキーに対して空の文字列を返します。」Option-eeと入力すると、 Option-eには何も表示されず、2番目のeにはプレーンな「e」が表示されます。
-[NSEvent keyCode]
一連のキーコード (から) を Unicode 文字に結合する方法はありますか?
または、入力された Unicode 文字ごとにイベントを受け取る方法 ( Java の key-typed eventなど)?
macos - OS X で修飾キーを含むキーの押下を検出する
ユーザーが押すすべてのキーを検出する必要があります。を使用-keyDown:
すると、ほとんどのキー (英数字、ファンクション キー、矢印、スペース バー、エスケープ、リターン) を押すことができますが、単独で押すと修飾キーを取得できません。
修飾キーを含むキーストロークを完全に検出するにはどうすればよいですか?