對(duì)于響應(yīng)鏈的理解:
在IOS中,有響應(yīng)者鏈對(duì)事件進(jìn)行響應(yīng),所有的響應(yīng)類都是UIResponder的子類,響應(yīng)者鏈?zhǔn)且粋€(gè)由不同對(duì)象組成的層次結(jié)構(gòu),其中的每個(gè)對(duì)象將依次獲得響應(yīng)事件消息的機(jī)會(huì)。
響應(yīng)鏈的過(guò)程:
當(dāng)事件發(fā)生的時(shí)候,響應(yīng)鏈?zhǔn)紫缺话l(fā)送給第一個(gè)響應(yīng)者(往往是事件發(fā)生的視圖,也就是用戶觸摸屏幕的地方)。事件將沿著響應(yīng)者鏈一直向下傳遞,知道被接受并作出處理。一般來(lái)說(shuō),第一響應(yīng)這是個(gè)視圖對(duì)象或者其子類,當(dāng)其被觸摸后事件就交由它處理,如果他不處理,時(shí)間就會(huì)被傳遞給視圖控制器對(duì)象UIViewController(如果存在),然后是它的俯視圖對(duì)象(superview),以此類推知道頂層視圖。接下來(lái)會(huì)沿著頂層視圖(top view)到窗口(UIwindow 對(duì)象) 再到程序的(UIApplication對(duì)象),如果整個(gè)過(guò)程都沒(méi)有響應(yīng)這個(gè)事件,則該事件被丟棄,一般情況下,在響應(yīng)鏈中只要有對(duì)象處理事件,事件就會(huì)被傳遞。
典型的響應(yīng)路線圖如:
First Responser --> The Window -->The Applicationn --> App Delegate
正常的響應(yīng)者鏈流程經(jīng)常被委托打斷,一個(gè)對(duì)象可能將響應(yīng)工作委托給另一個(gè)對(duì)象來(lái)完成(通常是視圖控制器viewcontroller)。