問題タブ [textdocumentproxy]

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.

0 投票する
3 に答える
1671 参照

ios - iOS 8 textDocumentProxy - 複数のスペースを削除できますか?

self.textDocumentProxy拡張機能の で作業するときにから複数のスペースを削除したいのKeyboardViewControllerですが、このアクションを具体的に実行する Apple がサポートする方法があるかどうか疑問に思っていましたか?

これまでのところ、私はかなり「ハックな」方法で次のことを行ってきました (ここでは、 で見つかった以前のすべての文字を削除しますtextDocumentProxy)。

これに関する問題は methoddeleteBackwardにあります。どのプロンプトが表示されるかに応じて、documentContextBeforeInput削除するように指示された合計回数の約半分 (特に が 20 文字を超える場合は非常に信頼性が高くなります) を常に削除します。これはかなり信頼できないので、複数のスペース、またはすべてのテキストを簡単に削除する方法があるかどうか疑問に思っていましたtextDocumentProxy.documentContextBeforeInput

ありがとう!

0 投票する
2 に答える
4339 参照

ios - iOS: カスタム キーボード: textDocumentProxy(入力コントロール) に画像を送信したい

私は画像のみでカスタムキーボードを実装しており、画像をクリックしてテキストビューのような textDocumentProxy/input コントロールに画像を送信したかったのですが、それを乗り越えたくありませんでした。これまでのところ、テキスト/文字列を入力コントロールに送信できますが、画像は送信できません。

入力コントロールに画像を送ることはできますか?

どんな提案や解決策も大歓迎です。

0 投票する
0 に答える
1362 参照

ios - iOS 8 キーボード拡張: UIInputViewController textDocumentProxy 接続が無効化されました

iOS 8 キーボード拡張機能に を追加しUITextFieldて、ユーザーがキーボード内の絵文字やその他の要素を検索できるようにしました。

たとえば Notes.app でユーザーが入力している場合、ユーザーはキーボード拡張機能の検索フィールドをタップして検索を開始します。タップすると、拡張機能は次のようにログに記録します。

-[UIKeyboardInputManagerClient handleError:forRequest:] は、エラー Domain=NSCocoaErrorDomain Code=4099 "The operation could not be completed. (Cocoa error 4099.)" (com という名前のサービスへの接続.apple.TextInput が無効になりました。) UserInfo=0x170276e00 {NSDebugDescription=com.apple.TextInput という名前のサービスへの接続が無効になりました。}

kbd クラッシュ ログを確認してください。- [UIKeyboardInputManagerClient handleError:forRequest:] 送信に 2 回連続して失敗した後、キーボード デーモンへの接続を閉じました

この後、ユーザーは Notes.app テキストをタップして編集に戻ります。これで、使用して textDocumentProxy に送信されたテキストは、Notes.app テキストではなくinsertText:、キーボード拡張機能に引き続き送信されUITextFieldます。

デリゲート メソッドは、textDidChange:メモ テキストをタップすると、引き続き呼び出されます。また、textDocumentProxys プロパティdocumentContextBeforeInputdocumentContextAfterInputは、Notes.app テキストからの正しいテキストが含まれています。

UITextFieldが textDocumentProxy の「リスナー」になっているように見えますが、そうすべきではありません。

私は成功せずに試しました:

  • userInteractionEnabled = NO上の設定UITextField
  • resignFirstResponder上でUITextField
  • endEditing:YES上でUITextField
  • プロパティの変更を監視しtextDocumentProxyますが、同じオブジェクトを参照し続けます。

回避策は、別のキーボードを選択してから、自分のキーボードに戻ることです。その後、接続が復元され、すべてが正常に戻ります。(ユーザーが再度 UITextField をタップするまで)。

App Store で、同じ問題を抱えているカスタム キーボード アプリをいくつか見つけました。これは私にそれが解決できないと思うように導きました。ただし、問題なく動作し、ユーザーが問題なくテキスト フィールドを移動できるカスタム キーボード アプリも見つけました。

何か案は?

0 投票する
1 に答える
293 参照

ios - Use custom InputViewController in app

My current assignment is an iOS Keyboard Extension. Now, to pass App Store Review, the containing app has to provide some "real" content. I thought about letting the user test the keyboard before enabling it in the Settings. So my storyboard looks like this (reduced to show relevant stuff):

This works all right, the keyboard shows in the container, but - as the textDocumentProxy object in the keyboard's view controller isn't attached to anything - the user can't see what s/he's typing.

Now I'm looking for a way to "attach" the keyboard to the text field, while keeping the system keyboard out of the way so the user can type on the custom one.

I already managed to get the system keyboard away by attaching the following function to the textfield's editing did begin action.

0 投票する
1 に答える
2171 参照

ios - UITextField を使用したカスタム キーボード拡張機能

UITextField を含むカスタムキーボード拡張機能があります。のテキスト入力に切り替えることはできUITextFieldますが、元に戻すことはできませんself.textDocumentProxy。のようなことをする方法を知っている人はいます[self.textDocumentProxy becomeFirstResponder]か?

(ちなみに「GIFキーボード」アプリではその可能性があるようです)

0 投票する
0 に答える
109 参照

ios - textDocumentProxy が絵文字を「分割」するのを防ぐことは可能ですか?

私は現在、iOS 用のサード パーティ製キーボードに取り組んでおり、小さな問題に遭遇しましたtextDocumentProxy。皆さんが私を助けてくれることを願っています。

したがって、コンソールに出力する次の2つの変数を定義しています-

adjustTextPositionByCharacterOffset()パンの方向に応じて 1 または -1の UIPanGesture 。したがって、カーソルをパンしている間、カーソルの前後のコンテンツが印刷されます。文字列に絵文字が含まれている場合 (つまり) を除いて、これはすべてうまく機能します。以下に示すように、絵文字は常に未定義の文字で分割されてしまいます (この場合、ニヤリと笑う絵文字が分割されています)。

どんな助けでも大歓迎です。ありがとう!

0 投票する
1 に答える
77 参照

ios - 非常に単純なメソッドを呼び出すたびにメモリが割り当てられ、解放されない

IOSキーボードアプリ拡張機能で削除ボタンが押されたときに呼び出される次のメソッドがあります:

ただし、このメソッドが呼び出されるたびに、キーボードのメモリ使用量が 1 ~ 2 MB 増加し、元に戻りません。これにより、すぐにクラッシュが発生します。

このスレッドでオブジェクトの割り当てまたは割り当て解除を行っていないため、大規模なメモリ リークが発生する理由がわかりません。

アップデート:

dispatch_get_main_queue()静的変数に変更しました:

mainqueueの代わりに使用されdispatch_get_main_queueましたが、これは何もしませんでした。

更新 2:

tempProxydelete が呼び出されるたびに作成されるという変数を追加しました。

let tempProxy = (self.textDocumentProxy as UIKeyInput) 次に、dispatch_asyncこれを使用しました:

selfへの参照があるとメモリ保持が発生する可能性があると聞いたので、これを行いました。

更新 3:

私が変更され:

print()声明に。

メモリ使用量が大幅に減少しました。しかし、なぜメモリがまだ解放されていないのか、私は混乱していました。