2012-09-19 117 views
0

iOS中是否有可能捕獲針對父組件中子組件的事件?類似於DOM事件模型中的事件捕獲階段。在父組件中捕獲針對孩子的事件 - iOS Cocoa Touch

我試圖隱藏鍵盤時,用戶輕敲鍵盤之外。我添加了一個事件處理程序,它可以對主視圖執行此操作。它通常工作正常,但是,如果輕擊元素包含自己的事件處理程序,則不會執行分配給主視圖的事件處理程序,因爲該事件已由輕敲組件處理。

任何幫助,將不勝感激。

感謝, 米哈爾

回答

0

要麼你想添加一個透明視圖,顯示鍵盤時,將接收的事件,在您的整個佈局或覆蓋所有組件- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch並顯示鍵盤時返回NO

+0

我不喜歡第二種選擇,但第一種看起來很有希望。我只有一個問題。我仍然希望在用戶點擊屏幕和鍵盤隱藏時執行子組件上的處理程序。透明視圖不會接收所有事件,它們不會傳播給孩子嗎?我不希望用戶點擊兩次,首先隱藏鍵盤,然後執行組件的操作。 –

+0

嘗試在透明視圖的手勢識別器上將'cancelsTouchesInView'設置爲NO。如果這不起作用,請覆蓋' - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch'。在它內部,檢測觸摸是否觸及子動作(即按鈕,...),然後關閉鍵盤並返回NO。 – nicolasthenoz

相關問題