2016-04-09 13 views
0
で検出iOSのキーボードテキスト置換

のiOSが組み込まれており、ユーザーは自分のスウィフトでスウィフト:UITextFieldです

設定>一般>キーボード>テキスト置換

にテキスト置換を設定することができます機能iOSアプリのUITextFieldでは、ユーザーがこのテキストの置換をいつ使用したかを知る必要があるため、適切な処置を取ることができます。私の本能は

func textField(tf: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { 

を使用していたが、興味深いのは、この機能は、テキスト置換のこの種で呼び出されていない、これを解決するために、他の方法がありますか?

+1

私は「textfield:shouldChangeCharactersInRange:replacementString」を実際に呼び出しました。スペース文字を入力したときに「私の方法で」置き換えられた「omw」とタイプされました。私はiPhone 6s Plus(9.3)とiPhone 4s(8.1)シミュレータを試しました。 – TylerTheCompiler

+0

おそらく、征服されていますか? – BHuelse

答えて

2

この設定でshouldChangeCharactersInRange機能をテストしましたが、テキスト展開が表示されます。私はテストしました:

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { 

     print(string.characters.count) 

     return true 
    } 

テキスト拡大の直後に文字カウントジャンプを見ることができます。

textFieldがIBOutletに接続されており、クラスをデリゲート(textField.delegate = self in viewDidLoad)に設定していることを確認してください。

この作業が表示されたら、もちろんテキストの拡張を識別して、任意の方法で処理できます。

+0

私は 'shouldChangeCharactersInRange'の' textField'の '.text'値が早すぎるかどうかをチェックしていました。 – Kashif

+0

実際には、テキスト置換通知をブロックしていた 'shouldChangeCharactersInRange'によって空白を同時に抑制しようとしていたので、私にはうまくいきませんでした。 – Kashif

+0

ライブと学ぶ。 –