UIResponder的響應鏈方法

2021-07-15 14:49:44 字數 1983 閱讀 7831

直接附上源**:

#import

@inte***ce

uiresponder (transfer)

/*** 

傳送乙個待響應訊息,對

eventname

感興趣的

uiresponsder

可以對訊息進行處理

* 注意

如果對傳過來的訊息不處理,需要傳遞給下乙個響應

* @param

eventname

發生的事件名稱

* @param

userinfo 

傳遞訊息時

,攜帶的資料

,資料傳遞過程中

,可以有新的資料新增**/

- (void

)transfereventwithname:(

nsstring

*)eventname userinfo:(

nsdictionary

*)userinfo;

/*** 

傳送乙個待響應訊息給指定的響應者** 

@param

response

響應者類名

class

類名str

* @param

selector

響應方法

str無參

*/- (

void

)transfereventtoresponse:(

id)response responseselector:(

nsstring

*)selector;

/***  

傳送乙個待響應訊息給指定的響應者** 

@param

response

響應者類名

class

類名str

* @param

selector

響應方法

str帶引數

* @param

args    

帶乙個引數包裝成字典

*/- (

void

)transfereventtoresponse:(

id)response responseselector:(

nsstring

*)selector withargument:(

nsdictionary

*)args;

@end

#import

"uiresponder+transfer.h"

@implementation

uiresponder (transfer)

- (void

)transfereventwithname:(

nsstring

*)eventname userinfo:(

nsdictionary

*)userinfo

- (void

)transfereventtoresponse:(

id)response responseselector:(

nsstring

*)selector }}

- (void

)transfereventtoresponse:(

id)response responseselector:(

nsstring

*)selector withargument:(

nsdictionary

*)args }}

- (id

)findresponse:(

id)response

else

uiresponder

*nextresponse =

self;do

}while

(![nextresponse

iskindofclass

:c]);

return

nextresponse;}

@end

iOS中的 響應鏈

事件處理的事件傳遞 簡介 uiview不接受觸控事件的三種情況 不接收使用者互動 userinteractionenabled no 隱藏 hidden yes 透明 alpha 0.0 0.01 事件傳遞的詳細過程 主視窗會在檢視層次結構中找到乙個最合適的檢視來處理觸控事件,但是這僅僅是整個事件處...

12 響應者鏈

什麼是響應者鏈 由多個響應者物件組成的鏈。uiresponder.響應者類。ios中所有能響應事件 觸控 晃動 遠端事件 的物件都是響應 者。系統定義了 個抽象的 類uiresponder來表 響應者。其 類都 是響應者。檢測到響應者後,實現touchesbegan withevent 等 法,即處...

selector 和響應鏈

因為 swift 2.2 中 selector 的新語法,我用在 在 target action 中使用響應鏈 中的方法產生了乙個警告,讓我們來修正它。首先我們加入乙個協議 objc protocol detailshowable之後,我們可以給selector新增乙個 extension,就像 a...