問題タブ [ime]
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.
winforms - WinForms TextBox の IME テキストにアクセスするには?
ユーザーが編集している間、つまり [Enter] を押す前に IME テキストを取得する必要があるため、テキストの「完成した」バージョンを WinForms (.net 3.5) TextBox に追加します。
どうすればこれを達成できますか?
Java のInputMethodListener.inputMethodTextChangedに沿ったいくつかのイベントは素晴らしいでしょう。
android - Android入力メソッドがオートコンプリートとオートコレクトを処理する方法をオーバーライドできますか?
私は独自のテキストエディタを作成しており、段落間に常に余分なスペースを入れたいので、EditTextのOnKeyListenerをオーバーライドして、Enterキーを押すとテキストに2つの改行が挿入され、カーソルが段落の先頭で、1文字ではなく2文字が削除されます。
簡単そうに見えますが、私の問題は、Enterキーを押してからBackspaceキーを押したときに入力メソッド(つまりキーボード)が単語の編集を終了した場合、その単語を下線付きの自動で置き換えてBackspace自体を処理しようとすることです。それ自体の修正可能なバージョン(単語をそれ自体で上書きする)。ただし、余分な改行のためにカーソルが2文字前に移動し、入力メソッドはそれを認識しないため、上書きを行うと1文字ずれます。
それが混乱していた場合は申し訳ありません。バグの例を次に示します(カーソルがある場所の垂直バーマーク):
空の行に単語を書く
/li>Enterキーを押すと、新しい行が表示されます
/li>削除を押します
/li>
バグを修正するためにこれまでに試したこと:
OnKeyListenerを使用してバックスペースを適切に処理します。残念ながら、OnKeyListenerは、Inputメソッドが処理を実行した後にのみキーイベントを取得します。
TextWatcherを使用して、入力メソッドが実行したことを元に戻します。残念ながら、TextWatcherには、Backspaceが押されたかどうか、または表示されているテキストが他の何かの結果であるかどうかを知る方法がありません。
Enterキーが押されるたびに、改行を自動的に追加するという考え全体を破棄します。残念ながら、段落の後に空白を追加する方法は他にないようです。私の知る限り、TextViewのスパンは段落に水平方向の余白を追加することしかできず、垂直方向の余白を追加することはできません。
したがって、入力メソッドがバックスペースを取得する前に、バックスペースをキャッチしようとするのが最善の策だと思います(ちなみに、OnKeyPreImeも機能しませんでした)。自分でIMEを完全に作成する必要はなく、ユーザーが好きなIMEで入力できるようにしたいのですが、カスタムIMEをテキストエディターにバンドルする必要がある場合は、そうしてください。それでも、オートコレクトがどのように機能し、どこに実装されているかについてのドキュメントはほとんどないため、どこから始めればよいのかさえわかりません。
どんな助けでも大歓迎です。前もって感謝します!
android - タブレット用カスタム入力キーボード
私はタブレットを構築していますが、標準のキーボード入力を使用したくありません。私は常に横向きモードにしているので、このキーボードの動作に十分なスペースがないと思います. 独自のカスタム IME を作成するための優れたチュートリアルはありますか? サイズ変更はランドスケープ モードのオプションですか?
.net - WinCECF2.0コントロールテキストボックスIME
.NET2.0CompactFrameworkを使用してWinCE用のスマートデバイスアプリケーションを作成しています。完全な2.0フレームワークでは、this.ImeModeを使用してIME(入力メソッドエディター)を制御できます。このプロパティは、CompactFrameworkでは使用できません。wince DLLから何かを呼び出すようなことができることはありますか?
android - KindleFireキーボードボタン
アプリにEditTextフィールドがあります。
問題は、私のKindle Fireでは、ユーザーが編集したいときに表示されるキーボードにEditText
[完了]ボタンがなく、ソフトキーボードを非表示にするボタンだけがあることです。
上のスクリーンショットで強調表示した「キーボードを非表示」ボタンを傍受できれば、それは問題にはなりません。OnEditorActionListener
ただし、アタッチしたをトリガーするようには見えないEditText
ので、実際のレイアウトに独自の[完了]ボタンを配置してEditTextからフォーカスを外し、非表示にする以外に、何をすべきかが少し行き詰まっています。キーボードを使用して、番号が変更された結果として変更を加えます
「キーボードを隠す」ボタンを傍受する方法はありますか、それとも別の解決策がありますか?
ちなみに、私はアプリの他の場所にimeOptionsもinputTypeも指定せず、Returnキーを持っている通常のEditTextビューを持っています
参考までに、残りのコードは次のとおりです。
。
android - IME をラップすることは可能ですか?
プログラムのアイデアを具体化していて、よくわからない点に遭遇しました。他のサービスに機能を追加する Android 用の新しい InputMethodService を作成しようとしています。
私がやろうとしていることの例は次のとおりです: Speech-to-Text サービスを作成し、テキストを別のサードパーティの IME にフィードしたいと考えています。これにより、その IME の機能を使用できるようになります。たとえば、私が日本語を話している場合、サードパーティの IME を介して漢字に変換できるようにしたいと考えています。
ただし、SDK には「一度にアクティブにできる IME は 1 つだけ」と記載されているため、実行可能かどうかは正確にはわかりません。setInputMethod を呼び出して新しい IME をフィードすると、サービスはフォーカスの変更と IME の呼び出しを検出できなくなります (入力が必要なタイミングを知るため)。
ドキュメントの理解は正しいですか?または、これを行うための他の方法はありますか?
java - Java swing アプリケーションで IME 言語を変更する
テキストを入力するための EditorPane と JRadioButtonMenuitems を含むメニューを持つ Java(Swing) でテキスト エディターを構築しています。Menu が「Language」で、「Language」の下の JRadiobuttonMenuitem が「Spanish」、「Japanese」、「English」などのように、ユーザーが JRadioButtonMenuItem をクリックして選択すると、システムは選択した言語に従って IME を変更する必要があります。ユーザーがクリックして日本語オプションを選択した場合と同様に、エディターは現在のプロセスの IME を日本語に変更し、ユーザーがそれぞれの言語でテキストを入力できるようにする必要があります。
適切な IME がインストールされています。手動で IME を変更し、swing コンポーネントに書き込むことができます。しかし、私の問題は、プログラムで IME をロードする方法です。
現在、私はこのアプリケーションを WindowsXP で構築していますが、このアプリケーションでオペレーティング システムごとに IME 言語を変更したいと考えています。
Google で検索しましたが、IME を変更するための関連情報は見つかりませんでした。
ありがとう
android - キーボードの行キーの高さを増やす
/res/xml の xml ファイルに、次のようなキーボード定義があります。
ある列のキーを他の列よりも高くする方法を探していますが、方法がわかりません。Keyboard タグの keyHeight を大きくすると、すべてのキーが大きくなります - 1 行だけをターゲットにする方法はありますか?
ime - メッセージ ループに大量の WM_INPUTLANGCHANGEREQUEST があるのはなぜですか?
somme 環境では、私のプログラムのメッセージ ループは、 WM_INPUTLANGCHANGEREQUEST 、 WM_INPUTLANGCHANGE 、 WM_IME_NOTIFY の順にいっぱいでした。
WM_INPUTLANGCHANGEREQUEST がどこから投稿されたのか、本当にわかりません。これにより、API PeekMessage(..., PM_REMOVE) は常にゼロ以外を返すため、アイドル時間にロジックを実行できません。
それが起こると、数回後にウィンドウを最大化および最小化します。メッセージ ループが明確になります。そして、すべてがうまくいきます。または、 WM_INPUTLANGCHANGEREQUEST 、 WM_INPUTLANGCHANGE 、および WM_IME_NOTIFY ループの処理でまだ忙しい。
番組開始時のタイムチェンジ時に発生する場合があります。
助けを乞う!Orz~~~~~。下手な英語でごめんなさい。