我試圖通過繼承UITextField
來創建位置自動填充文本視圖類,並使用Google Place自動填充API。這很好,但由於實現,我有一個設計錯誤。爲了觀察用戶何時輸入文本,我在自定義子類中設置UITextFieldDelegate
爲self
,並跟蹤對textView:shouldChangeTextInRange:replacementText:
中輸入文本的更改。這是有效的,但這是設計錯誤:如果有人現在想通過將委託設置爲新的東西來檢查輸入到自定義子類中的內容,那麼我的類的委託不會再設置爲類的對象。現在這個自定義類是沒用的。有沒有辦法讓文本在沒有委託的情況下被輸入,防止委託被更改,或以任何其他方式解決我的問題?獲取UITextView文本而不委託
我有幾種選擇,雖然關於可能的工作,但在一個糟糕的方式:
- 定期檢查的
text
屬性是什麼:應該是顯而易見的,爲什麼忙等待是一個愚蠢的想法 - 覆蓋的委託屬性並將其設置爲私有:不知道這是否會起作用,但如果這樣做,該類不再是UITextField的適當子類,並且在實現我的子類時,所有委託方法都不可用。
- 爲進一步使用了代表的新的委託:允許某人得到同樣的東西作爲
UITextFieldDelegate
提供,但它仍然打亂了UITextField