在 iOS 中,一個 UIResponder 對象表示一個能夠接收觸摸屏上的觸摸事件的對象,通俗一點的說,就是表示一個能夠接收事件的對象。 spa
iOS 中,全部顯示在界面上的對象都是從 UIResponder 直接或間接繼承的。 對象
下面是 UIResponder 類的一些定義信息: blog
觸摸事件相關: 繼承
方法名稱 事件
說明 input
touchesBegan:withEvent it
當用戶觸摸到屏幕時調用方法 io
tochesMoved:withEvent sso
當用戶觸摸到屏幕並移動時調用此方法 方法
tochesEnded:withEvent
當觸摸離開屏幕時調用此方法
tochesCancelled:withEvent
當觸摸被取消時調用此方法
運動事件相關:
運動事件是指當用戶以特定方式移動設置,如搖擺設置時,設置會產生運動事件,由如下幾個方法進行處理:
方法名稱
說明
motionBegan:withEvent
運動開始時執行
motionEnded:withEvent
運動結束時執行
motionCancelled:withEvent
運動被取消時執行
響應對象鏈相關:
方法名稱
說明
isFirstResponder
指示對象是否爲第一響應者,這裏的第一響應者就是當前有焦點的對象,叫法挺奇怪的,第一次看到真還難以理解這個叫法所表達的意思
nextResponder
下一個響應者,在實現中,通常會返回父級對象
canBecomeFirstResponder
獲取一個布爾值,指定對象是否能夠獲取焦點
becomeFirstResponder
把對象設置爲 firstResponder 對象
canResignFirstResponder
對象是否能夠取消 firstResponder 對象
resignFirstResponder
取消對象爲 firstResponder 對象
輸入視圖管理相關:
輸入視圖是指當對象爲 firstResponder 對象時,顯示另一個視圖用來處理當前對象的信息輸入,如 UITextView 和 UITextField 兩個對象,在 UITextField 成爲 firstResponder 對象時,會顯示一個系統鍵盤,用來輸入信息。這個鍵盤視圖就是一個輸入視圖了。一共有兩個相關的輸入視圖,一個是 inputView, 另外一個是 inputAccessoryView,這兩個視圖顯示的關係以下圖:
從圖中能夠看到, 若是 inputView 和 inputAccessoryView 兩個屬性都指定了相應的視圖,則 inputAccessoryView 對象顯示在 inputView 對象的上面。
與輸入相關的還有一個 reloadInputViews 方法用來從新載入輸入視圖。