問題タブ [input-method-kit]
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 - 入力方式キットを介したキーボード入力付きボタン
入力方式キット(IMK)を使用して、アプリケーション用の仮想キーボードを作成しています。
ただし、ボタンを押してキーボードイベントをシミュレートすることはできません。
キーボードイベントシミュレーションに使用できるライブラリはありますか?
この問題の参考資料/解決策はありますか?
macos - Mac OS X 用のインプット メソッドを作成するためのリファレンスや情報はありますか?
どんな情報でも大歓迎です。
OS X の入力メソッドの API については何も知りません。
cocoa - IMKTextInput のマークされたテキスト形式を変更するには?
デフォルトでは、IMKTextInput プロトコルの実装者は、現在の入力セッションのマーク付きテキストを下線付きで表示します (ドキュメントによると、2 ピクセルの黒い下線が付いています)。特定の入力方法を開発しており、別の書式設定を使用したいと考えています。たとえば、下線なしで背景色を使用したいと考えています。空の形式で属性付き文字列を試しました:
しかし、役に立たない。では、マークされたテキストの形式を変更するにはどうすればよいですか? 出来ますか?
objective-c - ココアで、テキストフィールドがパスワードであることを確認する方法
Mac OS でインプットメソッドを開発しています。今、私は問題を抱えています。現在の入力テキスト フィールドがパスワード用の場合、入力モードを英語に切り替える必要があります。しかし、私はチェックを行う方法がわかりません。現在の入力フィールドがパスワード フィールドであることを確認するにはどうすればよいですか?
objective-c - 入力方法で非アクティブ化すると Microsoft Word がクラッシュする
入力方法を開発しています。現在、Microsoft Word でクラッシュしています。現在の編集フィールドが無効になっている場合、マークされたテキストをきれいにするために何らかの作業を行う必要があります。私が使う:
しかし、単語で行うと、この「setMarkedText」でクラッシュします。それは単語が傷ついたテキスト自体をきれいにするために何らかの仕事をするのが好きです. 誰にもアイデアはありますか?ありがとうございました。
macos - インプットメソッド(IMKit)の設定トラブル
Input Method Kitを使用して新しいインプット メソッドを作成しようとしています。ドキュメントは非常に不足していますが、プロジェクトを正しく設定していると信じており、~/Library/Input Methods
ビルド後に入力メソッドを配置しています。ただし、言語とテキストの環境設定で入力ソースのリストを見ると、奇妙な動作が見られます。
NumberInput サンプルは問題なく動作するようで、Info.plistのtsInputMethodIconFileKey
、InputMethodConnectionName
、の値を除けば、新しい入力メソッドに違いはありません。しかし、私はこれらの問題を見ています:InputMethodServerControllerClass
CFBundleIdentifier
- アプリに目的のバンドル ID を使用すると、リストに何も表示されません。(このバンドル ID は、私のシステムのどこにも存在しません。)
- バンドル ID を NumberInput サンプルと同じになるように変更すると、リストに表示されますが、それを選択すると、リスト内のエントリが重複することがあり、一般的に奇妙な動作をします。
- バンドル識別子を少し変更すると、正常に動作しているように見えますが、元の識別子 (目的の識別子) に戻すと、リストから消えます。
- 入力方法に関連付けられたプロセスを終了すると、メニューで再度選択しても再起動しません。
何が起こっているのか誰にも分かりませんか?IMKit に関する Apple のドキュメントはほとんど存在せず、多くの人が入力メソッドを作成する試みをドキュメント化しているようには見えません。足りないものはありますか?
前もって感謝します!
PS はい、ログアウトして再度ログインし、コンピューターを再起動してみましたが、上記の動作に大きな変化はないようです。
objective-c - NSPoint および IMKCandidate ウィンドウの配置
inputmethodkit を使用して、テキストの下にウィンドウを配置しようとしています。
_currentClient はIMKTextInput
インスタンスです
候補はIMKCandidates
インスタンスです
これで、windowInsertionPoint
変数に問題がないことがわかりました。デバッグすると、値が表示されます。たとえば、NSPoint: {647,365} です。
ただし、これを使用すると、候補ウィンドウが画面の左下隅に表示されます。私は前にものの画面配置を扱ったことがないので、助けていただければ幸いです。
に任意の静的な値を渡すとsetCandidateFrameTopLeft
、画面に配置されます。以下の作品:
ポインターの問題ですか?
cocoa - NSKeyup イベントをキャッチする IMKit
実験として、次のことを達成しようとしています。
- Shift キーのように、スペースバーを修飾キーとして機能させます。スペースバー キーを押したままにしておくと、キーを入力すると、異なる文字が出力されます。スペースバーを放すと状態が通常に戻り、それを押すだけで通常のスペース キーのように動作します。
キーダウンとキーアップのイベントを処理することを考えていましたが、どうやらhandleEvent:client:
IMKServerInputプロトコルではキーダウンとマウスのイベントのみをキャッチするようです。
ココアの経験があまりないので、いくつかの方法を試しましたが成功しませんでした:
- インターネットアーカイブを介してテクニカルノート2128を調べたところ、plistアイテムの適切な説明が得られました。それでも、キーアップについては何もありません。
- IMKStateSetting Protocol
recognizedEvents:
にNSKeyUpMask を追加しようとしましたが、それもイベントをキャッチしていないようです。 - addLocalMonitorForEventsMatchingMask:handler:で少しテストしました が、何も起こりません。
NSFlagsChanged
スペースバーでイベントを発生させる方法が見つかりませんでした。- Quartz Event Serviceについて読ん
CGEventTap
でください。これは、下位レベルでユーザー入力を処理しているようです。まだこのルートには進んでいません。 - IOHIDマネージャー?
IMKit は受動的にイベントを受信することしかできないという結論に達しました。アプリケーションではないためkeyUp:
、オーバーライドする方法はありません-AFAIK、IMKitはNSResponder
クラスを継承しません。
残念なことに、cocoa はあまりにも広範すぎて、私のような初心者が飛び込むためのドキュメンテーションがはるかに少ない (または役に立たないもので溢れている) のです。
誰でも正しい方向に私を助けることができますか?
objective-c - 入力メソッドの候補を自分で描画するための OSX API はありますか?
入力ボックスが NSView ではなく、カスタム レンダリングされたウィジェットであるフルスクリーン OpenGL ゲームに、日本語 (および他の言語) の入力サポートを追加したいと考えています。
NSTextInputClientを採用すると、入力方法を利用できるようになると思いますが、OS が OSX スタイルの入力方法 UI をゲームにレンダリングすることは望ましくありません。スタイルとの連続性が失われるからです。
a.) デフォルトの候補リスト UI を非表示にし、b.) 入力メソッドでイベントをリッスンして、作成中のテキストの候補リストを受け取り、レンダリングできるようにする下位レベルの API はありますか?周囲の UI のスタイルで、ゲーム内テキスト ウィジェットの候補リストを表示しますか?