调试触摸:未调用UIWindow sendEvent

时间:2018-07-05 14:22:58

标签: ios objective-c swift debugging touch

我在捕获用户触摸方面遇到一些问题。我正在使用显示地图的外部图书馆。在执行某些操作后,地图将停止应答触摸。我将UIWindow子类化,并在AppDelegate中将其替换(以下面介绍的方式)。它通常可以正常工作,并且当我触摸屏幕时,该处的断点将停止执行。

当地图停止响应时,按钮仍会触发断点,但是在地图上点按/滑动/捏合不会执行任何操作,即使断点也不会触发。就像我从未触摸过屏幕一样,我认为UIWindow应该始终报告触摸情况。

它可以指示什么?还可以做些什么来解决此问题?

@objc class MyWindow : UIWindow {
    override func sendEvent(_ event: UIEvent) {
        print(event) // + breakpoint here
        super.sendEvent(event)
    }
}

并在AppDelegate中:

- (MyWindow *)window {
    static MyWindow *myWindow = nil;
    if (!myWindow) {
        myWindow = [[MyWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    }
    return myWindow;
}

0 个答案:

没有答案