1. 程式人生 > >IOS深入學習(18)之Target-Action

IOS深入學習(18)之Target-Action

1 前言

    這節我們來學習一下Target-Action(目標-動作模式)。

    英文原文:

2 詳述

    Target-Action是一種當一個事件發生時候,一個物件攜帶傳送一個訊息到另一個物件的必要的資訊設計模式。儲存的資訊包括兩類資料:標識所被呼叫的方法的動作選擇器,和一個接收訊息的目標。當被稱作動作訊息的事件發生的時候訊息開始傳送。儘管target可以是任何物件,甚至是框架物件,典型代表是以一種應用的特殊方式處理action message的一個自定義控制器。

    引發一個動作訊息的事件可以是任何事物,比如物件傳送訊息可以為任何物件一樣。舉個例子:手勢識別物件可能會發送一個動作訊息給另一個物件當手勢被識別的時候。然而target-action範例最普遍的發現在控制器例如按鈕或者滑動條。當一個使用者操作一個控制物件,它傳送訊息給特殊的物件。控制物件是UIControl的子類。action selecter和target object都是控制物件的屬性。

2.1 一個動作方法必須是固定格式的

動作物件必須有傳統的標示。UIKit框架允許某些標識變動,但是平臺接受action methods的格式必須與下面程式碼類似:

-(IBAction)doSometing:(id)sender;

被用來替換void型別的,IBAction標識型別的限定詞,是用來宣告為一個action的方法以便Interface Builder能夠知道它。對於出現在Interface Builer的一個action方法,我們首先必須宣告它在例項用來接受action資訊的class的標頭檔案中。

2.2 我們能夠設定Target和Action在程式碼裡或者使用工具

我們能夠設定一個control物件的action和target以程式設計的方式或者在Interface Builder中。設定這些屬性有效的連結了control和她的target通過action。如果我們連線一個control和她的連線在Interface Builer中,連線會再nib檔案中歸檔。當一個應用之後載入nib檔案,連線將被儲存。

我們能夠設定一個action message的目標為空。以這種方式,應用在執行期確定target;它首先發送一個動作訊息給第一響應者並且從那裡開始它向上尋找響應鏈,知道動作被處理。

3 結語

    以上是所有內容,希望對大家有所幫助。