2014-11-06 80 views
3

當我使用外部鍵盤時,當按下Backspace鍵(「後退刪除」)時,我的UITextView會觸發shouldChangeTextInRange消息,但如果按Delete(「forward delete 「),那麼儘管視圖的文本按預期發生了變化,但方法根本不會被調用。萬一它很重要,我使用Swift和最新的iOS模擬器。刪除(不Backspace)不會觸發UITextViewDelegate的shouldChangeTextInRange

如果這是預期的行爲,有人可以指出我解釋它的文檔嗎?

更重要的是,是否有解決方法?

編輯:提交rdar:// 18909378。在使用cmd + backspace和opt + backspace時,我也發現了相同的行爲。很煩人!

+0

請提交一份雷達報告問題到http://bugreport.apple.com並編輯您的問題以包含雷達編號以防其他人想引用它。 – 2014-11-07 06:14:11

+0

也經歷了這個,並提交rdar:// 20252668,希望這將很快排序 – Joshua 2015-03-22 16:16:43

回答

0

我仍然在iOS 10上看到這個問題。我想到的最好的解決方法是聽該字段的UIControlEventEditingChanged事件,並從那裏獲取textField.text。這會給你更新的內容,但不允許你阻止像shouldChangeCharactersInRange那樣的刪除操作。

+0

已提交rdar:// 29595896:「UITextField不會調用shouldChangeCharactersInRange作爲對轉發刪除的響應」,這是作爲rdar的副本關閉的: // 24966189(仍然打開)。 – jszumski 2016-12-14 14:10:05

相關問題