如何获得当前活跃的UIEvent?

时间:2015-05-15 23:43:30

标签: objective-c uikit

背景

我有一个自定义UIWindow实现,它在sendEvent方法中发布通知。然后我有一个自定义视图,一旦添加到窗口层次结构,一旦上述通知被发布就将其从superview中移除(即,在此视图中,无论是否点击,都会移除视图)。最后,我有一个按钮,可以将此自定义视图添加到视图层次结构中。现在的问题是,当我点击这个按钮时,视图会被添加到视图层次结构中,但是,这个点击引起的事件在添加自定义视图后到达我的自定义UIWindow sendEvent方法,从而导致自定义视图成为在添加后立即删除。

问题

我想以某种方式访问​​任何UIEvent当前活动的内容。这可能吗,如果可以,那怎么办?

1 个答案:

答案 0 :(得分:0)

我通过监听通知来解决这个问题,以便跟踪最近的UIEvent(我在userInfo中提供了UIEvent)。然后,当再次收到通知时,我确保它与自定义视图出现之前发生的事件不同(如果是,我跳过删除自定义视图)。

虽然这是我的问题的答案,但@matt在回答以下SO问题时提出的底层问题的解决方案变得更好:How can I know when any of the objects on screen were tapped?