IOS開發筆記_設計模式 (文字框縮鍵盤)

在IOS中有幾項重要的設計模式

  1. 委派模式 (Delegate)
  2. 單例模式 (Singleton)
  3. 觀測者模式 (Observer )
  4. 通知模式 (Notification )
  5. MVC設計模式
 註:近期還有一個MVVM ( Model View ViewModel)

其中最重要的是,委派模式 (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 ]





然後這樣就可以讓文字框縮下去了!!

筆記:
  1. 在這些設計模式中,委派模式特別重要!
  2. UIResponderChain 反映鏈 (FiresResponder 第一回應人,而文字框被設為第一回應人時鍵盤會升起來,那當寫 resignFiresResponder時有縮鍵盤的效果
  3. 還有一個重點是協定 ( Protocol )在簽署協定後就可以使用它內部的方法!(簽訂協定中會有很多固定的方法可以用,那這些方法中的實作內容就看寫的人如何寫;也就是Protocol只寫了方法名稱,但是方法的實作是沒寫的,而這些實作方法是簽署協定的人人寫的)
  4. 而委派模式(Delegate) 和 協定(Protocol) 兩者是不同的東西




留言

這個網誌中的熱門文章

IOS_Objective-C學習筆記_(陣列 / 可修改陣列 ;字典 / 可修改字典)..

20170122 Radiobutton功能練習 (溫度轉換)

iOS_開發 拿到 Tableview Cell 上的按鈕是哪一個 (Tableview Cell Button)