2015-05-15 136 views
0

背景如何獲取當前活動的UIEvent?

我有一個自定義的UIWindow實現,帖子中的SendEvent方法的通知。然後,我有一個自定義視圖,一旦添加到窗口層次結構中,一旦發佈提及的通知(即在任何地方點擊,在該視圖中或不在視圖中移除),它都會從超級視圖中移除。最後,我有一個按鈕,可以將此自定義視圖添加到視圖層次結構中。現在的問題是,當我點擊這個按鈕時,視圖會被添加到視圖層次結構中,但是,由於這個敲擊導致的事件在添加了自定義視圖之後到達了我自定義的UIWindow sendEvent方法,從而導致了自定義視圖的存在添加後立即刪除。

問題

我想以某種方式訪問​​任何的UIEvent當前處於活動狀態。這有可能做到,如果是的話,那麼如何?

+0

@馬特下面是相關的SO疑問,解釋爲什麼我依靠sendEvent:http://stackoverflow.com/questions/30167843/how-can-i-know-when-any-of-the-objects-on-screen-were-taped –

+0

@matt可以有任何數量,這取決於視圖。我的自定義視圖是一個普遍的事物,不關心屏幕上的內容。它關心的唯一事情就是在屏幕上的任何內容被點擊時自行移除,並且在不干擾該點擊的情況下這樣做。 –

+0

@matt好吧,如果點擊_it_,那麼它下面的任何東西都不會被點擊,因爲點擊被吸收了。 –

回答

0

我通過偵聽通知來跟蹤最近的UIEvent(我在userInfo中提供了UIEvent)來解決這個問題。然後,當再次收到通知時,我確定它與自定義視圖出現之前發生的事件不是同一事件(如果是這樣,我跳過刪除自定義視圖)。

雖然這是一個回答我的問題,解決原來,在@馬特的回答提出了以下問題SO墊層問題要好得多:How can I know when any of the objects on screen were tapped?

相關問題