文字の入力が100個に制限されたUITextViewがあります。 textView:shouldChangeTextInRange:replacementText:メソッドを使用して文字入力を追跡することができます。 私のケースでは、キーボードを何も中断することなく、ボタンクリックで文字をテキストビューに入力するだけのチャンスがあります。そのような場合は、上記のデリゲートメソッドが呼び出されないので、テキストビューの文字数を追跡できず、100文字を超えることができます。 このようなケースはどのように処理する必要がありますか?助けてください。キーボードで入力していないときにUITextviewで文字の変更を追跡する
0
A
答えて
1
あなたはスウィフト3コードの下に試すことができます: -
@IBAction func buttonClicked(sender: AnyObject) {
self.textView.text = self.textView.text + "AA" //suppose you are trying to append "AA" on button click which would call the below delegate automatically
}
//Below delegate of UITextViewDelegate will be called from keyboard as well as in button click
func textViewDidChangeSelection(_ textView: UITextView) {
if textView.text.characters.count > 100 {
let tempStr = textView.text
let index = tempStr?.index((tempStr?.endIndex)!, offsetBy: 100 - (tempStr?.characters.count)!)
textView.text = tempStr?.substring(to: index!)
}
}
0
私の知る限り、テキストフィールドに既存のテキストを追加するカスタムボタンがあります。あなたが検証メソッド
func validateString(string: String) -> Bool {
return string.characters.count <= 100
}
を実装し、shouldChangeCharactersInRange
方法やボタンのコールバックにそれを使用することができます。この場合
:
func textField(textField: UITextField!, shouldChangeCharactersInRange range: NSRange, replacementString string: String!) -> Bool {
let currentString: NSString = (textField.text ?? "") as NSString
let newString = currentString.replacingCharacters(in: range, with: string)
return validateString(string: newString)
}
@IBAction func buttonPressed() {
let newString = textField.text + "a" //replace this line with your updated string
if validateString(string: newString) {
textField.text = newString
}
}
関連する問題
- 1. UITextViewカスタム入力(キーボードなし)iOS
- 2. カスタムUITextView PlaceHolderがキーボード入力時に消去しない
- 3. キーボードの入力とバイパスを追跡する方法SendInput
- 4. 入力がシーケンシャルでないときに文字列をintに変換する
- 5. jQueryで入力を追跡してトグルクラス
- 6. Java、文字入力を追加していないベクター
- 7. キーボードで入力したテキストボックスから空白( "_")文字を使用できないようにする方法
- 8. iOS、KVO:ObserverがmyObject.myCALayer.centerへの変更を追跡できない
- 9. リモートのコミットされていない変更を追跡する
- 10. キーボードが表示されているときにUITextViewがスクロールしない
- 11. switch文が文字入力を文字列出力に変換しない
- 12. PythonのUnicode文字としてのキーボード入力
- 13. JS:キーボード入力:「*」(多重符号)を入力するときに「8」を入力しないようにする
- 14. ArduinoのLEDの明るさをcで文字を入力して変更しようとしています
- 15. 入力タイプ=テキストで絵文字キーボードを強制するには?
- 16. タッチ入力をマウス/キーボード入力に変更する
- 17. テキストフィールドに1文字を入力するとキーボードが戻る
- 18. Androidキーボードとテキスト入力が無効[絵文字のキーボードのみ]
- 19. キーボードから入力した文字列
- 20. 続行しないでください。文字が入力されたときにテキストボックスに入力する
- 21. f.write - 入力データの変更後にサポートされていないフォーマット文字エラー
- 22. キーボードのeditTextを変更できないようにする
- 23. 文字を入力するときに文字がスキップされています
- 24. 文字列入力を変更することはできますか?
- 25. コマンドラインを使用してキーボード入力を変更する
- 26. ループ!無限の入力と入力の数を追跡する
- 27. UITextView objective cを入力するときにEmojisで文字を置き換える方法は?
- 28. Androidキーボードの入力リスナー(onkeypress、onkeydown)が数字のキーボードでない場合
- 29. 入力がkeydownイベントリスナーとデバッグモードのときに文字が入力されない
- 30. エスケープを押したときに入力値を変更できない理由