IOS開發筆記_設計模式 (文字框縮鍵盤)
在IOS中有幾項重要的設計模式
- 委派模式 (Delegate)
- 單例模式 (Singleton)
- 觀測者模式 (Observer )
- 通知模式 (Notification )
- MVC設計模式
其中最重要的是,委派模式 (Delegate)
而MVC模式通常會和委派模式 (Delegate)一起使用!
一般的MVC模式中會是以下兩個通道通道的建立
Controller --->View(建立IBOutlet)
View --->Controller (建立IBAction)
而在加入委派模式 (Delegate)後會再多兩個“單向通道”!
View --->Controller (建立Delegate , 這裡是回報狀態的改變)
View --->Controller (建立DataSource)
在View --->Controller 之間有三個通道可以選擇,但是這個不是可以隨意選擇,因為一開始就有設定好什麼元件走什麼通道!(例如:UIButton只能夠走IBAction)
委派模式:意思類似,我有秘書,而我讓秘書去幫我做事情
View 把任務委派給 Controller 完成
接下來我們要透過這個委派模式,讓我們在點選文字框使用後讓文字框回傳狀態,可以有縮鍵盤的功能!
首先我們先建立text的和ViewController通道,一樣式按住control拉線過去ViewController
接下跑出來的小框選擇 delegate ,後會有個白色小點表示已連結成功!
然後我們要在@interface與@end之間 簽署協定(Protocol)
在ViewController 後面加上<UITextFieldDelegate>
只要寫了這一段話,ViewController就看得懂delegate內部的八種方法,以下是內建的八種方法
換句話說ViewController簽署了UIDelegate 一項協定中的八個方法
而簽署協定後我們要讓文字框回傳這個狀態!
[tetFiled resignFiresResponder ]
然後這樣就可以讓文字框縮下去了!!
筆記:
- 在這些設計模式中,委派模式特別重要!
- UIResponderChain 反映鏈 (FiresResponder 第一回應人,而文字框被設為第一回應人時鍵盤會升起來,那當寫 resignFiresResponder時有縮鍵盤的效果)
- 還有一個重點是協定 ( Protocol )在簽署協定後就可以使用它內部的方法!(簽訂協定中會有很多固定的方法可以用,那這些方法中的實作內容就看寫的人如何寫;也就是Protocol只寫了方法名稱,但是方法的實作是沒寫的,而這些實作方法是簽署協定的人人寫的)
- 而委派模式(Delegate) 和 協定(Protocol) 兩者是不同的東西
留言
張貼留言