問題タブ [uitextinputtraits]

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 投票する
0 に答える
1295 参照

ios - iOS 7: UITextView UITextInputTraits バグ?

今日、 Revealに取り組んでいるときに、iOS 7 のUITextViewのUITextInputTraitsプロトコルの処理にバグがあることに気付きました。

このUITextInputTraitsプロトコルには、ユーザーが をタップしたときにどのような種類のキーボードを表示するかを設定するメソッドがありますUITextView

iOS 7 では、テキスト選択を有効にするかどうかを制御するための新しいselectableプロパティ onも導入されました。これは、UITextView をサブクラス化して no を返すか、代わりに を設定して適切なデリゲート コールバックを処理し、発生する選択を停止するUITextView必要があった iOS の以前のリリースで必要なメソッドよりもはるかに優れています 。canBecomeFirstResponderinputDelegate

残念ながら、iOS 7 で と の両方を NO に設定すると、すべての editableメソッドが機能しなくなります。それらのいずれかを呼び出そうとすると、アプリは例外でクラッシュします。プロトコルで宣言されたメソッドのいずれかを呼び出すと、インスタンスが YES を返すため、これは奇妙 です。selectableUITextInputTraitsinstance does not respond to selectorUITextViewrespondsToSelector:UITextInputTraits

これは iOS 7 のバグのように思えます。Apple には、rader://15063164 として報告しました。

また、(ストーリーボードではなく) コードを介して作成された UITextView の場合、このバグは表現されないことにも気付きました。理由はまだわかりません。追加のプロパティが動作している可能性や、UITextView がinitWithCoder:ではなく 初期化されているという事実がinitWithFrame:原因で、別の状態になっている可能性があります。

バグを示すいくつかのコード:

他の誰かがこれを見たことがありますか?または何かアイデアはありますか?

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

ios - カスタム UITextInput 実装が多段階の入力候補を表示しない

カスタムUITextInputベースのテキスト エディタを使用しています。マークされたテキストを介した多段階入力を除いて、非常にうまく機能します。

マークされた領域が正しくレンダリングされ、マークされたテキストが挿入されますが、キーボードの上の候補リストが空白です。

たとえば、標準の UITextView で候補を表示する日本語 (かな) キーボードは次のとおりです。

デフォルトのマーク付きテキスト

そして、これが同じマークされたテキストを表示するカスタム エディターです。

ここに画像の説明を入力

この問題のデバッグに数日を費やしたところ、原因はメソッドに対してUIKeyboardImpl返されたプライベート クラスであることがわかりましたNOdelegateSupportsCorrectionUI

このメソッドをカテゴリ on でオーバーライドして代わりにUIKeyboardImpl返すYESと、テキスト エディターで多段階の入力候補が正しく表示されます。ただし、これは問題の根本的な原因に対処していません (そして使用できません)。

また、Apple の SimpleTextInput サンプル コードも詳しく調べました。これにより、基本的な Core Text エディターが実装されます。SimpleTextInput は多段階の入力候補を正しく表示しますが、その実装に単一の違いを見つけることができず、UITextInputそれが機能し、私のものが壊れているようには見えません。

(実際、SimpleTextInput サンプルのマルチステージ入力を表示する機能を「壊す」ことはできません。そのため、UITextInput実装に重点を置いているのは間違っていると思います。それはまったく別のことです。)

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

ios - iOS: QuickType キーボードの提案は UITextInput プロトコルでどのように機能しますか?

UITextInputUIKeyInputおよびUITextInputTraitsプロトコルを使用して実装されたテキスト入力ビューがあります。

基本的なテキストの入力と削除は、 と を介して正常に機能しinsertText:ますdeleteBackward。ただし、QuickType の提案はこれらのメソッドでは受信されず、QuickType がこれらのプロトコルとどのように相互作用するかに関するドキュメントを見つけることができません。

QuickType 入力を受け取るには、これらのプロトコルをどのように実装すればよいですか?

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

swift - UITextInputTraits のプロパティを割り当てることができません

UITextInputTraits に準拠するオブジェクトとして UITextView にアクセスすると、奇妙なコンパイル エラーが発生します。

「プロパティに代入できません: 'self' は不変です」

ただし、プロパティがプロトコルで明示的に宣言されている場合、UITextInputTraits から継承せずに正常にコンパイルされます。

また、プロパティの宣言は UITextInputTraits と同じです。

スウィフト 4.2、XCode 10.1

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

swift - UITextInputMode が iOS 13 の英数字パッドで機能しない

アプリには 2 つのローカライズがあります (英語とアラビア語)。多くの UITextFields のキーボード タイプをdecimalPadに設定しました。これらのフィールドには、英語のみの小数点を強制する必要があります。ただし、アプリの言語がアラビア語の場合、キーパッドはアラビア語で表示されます。UITextField をサブクラス化し、 textInputModeをオーバーライドすることにより、iOS 12 まで正常に動作します。コードは次のとおりです。

iOS 13 では、上記のコードは効果がありません。iOS 13 でデフォルトでシステム絵文字キーボードを表示するに従いました。textInputContextIdentifier をオーバーライドしますが、それでも成功しません。

PS: Number、Asci などの他のキーボード タイプでも問題なく動作します。問題は小数点パッドでのみ発生します。