我在捕获用户触摸方面遇到一些问题。我正在使用显示地图的外部图书馆。在执行某些操作后,地图将停止应答触摸。我将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;
}