1. 程式人生 > >iOS事件的分發機制和響應者鏈(Swift)

iOS事件的分發機制和響應者鏈(Swift)

     許多型別的事件都依賴於響應者鏈進行事件的傳遞。響應者鏈關聯著一系列的響應者物件,由第一個響應者物件開始一直到application物件結束,如果第一個響應者不能夠處理事件,事件將會被傳遞到響應者鏈中的下一個響應者物件。一個響應者物件是能夠處理和響應事件的物件,UIResponder類是所有響應者物件的基類,它不僅僅定義了事件處理的介面而且還有共有的響應者行為。UIApplication, UIViewController, UIView等類的例項都是響應者物件,這意味著所有的檢視(all views)和大多數的關鍵檢視控制器物件都是響應者。但是要注意核心動畫中的層(layer)不是響應者。
第一響應者首先接收事件。代表性的就是:檢視是第一響應者物件。一個物件要成為第一響應者需要做兩件事:重寫canBecomeFirstResponder方法,返回true接收成為第一響應者資訊,及becomeFirstResponder方法,如果有必要,物件能夠自己給自己傳送資訊。注意:在物件被賦值成為第一響應者之前,確保APP已經建立的物件圖形(object graph)。例如:我們可以在viewDidAppear:方法中呼叫becomeFirstResponder方法,但是,如果我們嘗試viewWillAppear:中賦值第一響應者,我們的物件圖形可能還沒有建立,所以becomeFirstResponder
方法將返回false