2014-06-12 122 views
0

在我的應用程序中,我想多次使用UITextField。對於每個UITextField,我想實現UITextFieldDelegate方法(didEndEditing,didBeginEditing,應該...)。重用UITextField委託方法的實現

我的想法是繼承UITextField並將委託設置爲自己。然後按照我希望的那樣實施委託方法。在這種情況下,我可以在任何地方使用子類UITextField,並且委託方法將被執行一次,所以我不需要分別在每個VC中實現它們。

但是!

委託使用與另一個對象的通信將某些內容委託給該對象。將委託設置爲自己沒有意義。

我應該如何實現委託方法ONCE,因此每次使用Interface Builder放置UITextField並將類設置爲自定義UITextField時,文本字段將按照實現的委託方法行事。

感謝您的幫助

+0

UIView不應該是它自己的代理。讓一個UIViewController實現委託協議,並根據@Emilie –

+0

的建議,在需要的時候將其指定爲委託。好的,謝謝,我將就此開展工作。 – michel

回答

2

我的解決方案可能不是最優的,我還在尋找一個更好的,但一直沒有人接你,在這裏我們去:

一個UIView千萬別試圖「控制」任何東西:這只是一個觀點。這就是爲什麼通過我的項目,我的所有UIViewController繼承自基地UIViewControllerBaseViewController)。此BaseViewController擁有所有UITextField委託代碼,因此無論何時UIViewControllerUITextField委託人設置爲selfBaseViewController都會處理它。因爲我希望我的BaseViewController能夠控制我的所有視圖的UIScrollView內容偏移量,所以我也有一個基類BaseView,這些基類都是我的UIViews繼承的,默認情況下爲UIScrollview