2016-04-09 44 views
0

的iOS有一個內置的功能,其中用戶可以在斯威夫特:檢測的iOS鍵盤文本替換的UITextField

設置>常規設置文本替換>鍵盤>文本替換

在我斯威夫特iOS應用程序的UITextField,我需要知道用戶何時使用此文本替換,以便我可以採取適當的措施。我的直覺是使用

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

但有趣的是,這個功能是不是這樣的文本替換的調用,還有什麼其他的方法來解決這個問題?

+1

我剛剛試過,當我輸入「omw」時,實際上調用了'textField:shouldChangeCharactersInRange:replacementString',當我輸入空格字符時,它被替換爲「On my way!」。我嘗試了iPhone 6s Plus(9.3)和iPhone 4s(8.1)模擬器。 – TylerTheCompiler

+0

也許在didendediting? – 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,地址爲viewDidLoad)。

一旦你看到這個工作,你當然可以識別文本擴展和處理任何你想要的方式。

+0

原來,我在'shouldChangeCharactersInRange'中檢查'textField'的'.text'值太早了。 – Kashif

+0

實際上,我還應該提及它不適合我,因爲我試圖通過'shouldChangeCharactersInRange'同時禁止空白區域,該區域阻止了文本替換通知。 – Kashif

+0

生活和學習。 –