在iOS上发布时获取热点

在Mac上,可以通过调用[NSEvent mouseLocation]来获取鼠标“在事件流之外”的位置(即,即使您没有订阅mouseUp:et al的任何委托方法).

有没有什么方法可以在iOS上获取当前触摸事件而无需听取touchesBegan:?

我问,因为至少有一种情况没有调用touchesBegan:在app启动时,如果触摸已经在进行中,则touchesBegan永远不会被调用.实际上,也没有任何触摸相关的UIEvent方法被称为接近我所知道的(也不是UIApplication的/ UIWindow的sendEvent:,显然).

我想根据启动时是否正在进行触摸来稍微改变我的应用程序的行为.有没有办法在应用程序启动时检测正在进行的触摸?

解决方法

这是不可能做到的.原因很简单:触摸事件不属于您的应用.每次触摸都属于某个UI元素(或响应者).如您所知,此元素获取已开始,已移动,已结束,已取消的消息.

在正确编程的应用程序中甚至是这样:所有关于一次触摸的事件都被传递到同一个对象.毕竟,另一个对象如何知道如何处理该事件,以及第一个对象应如何正确完成其预期的行为?

虽然你可以(或者可能,但可能不应该)在你的应用程序中找到解决方法,但是没有办法进行跨应用程序触摸传递.

在Mac上,您可以查询鼠标位置,但在正常的应用程序流程中,在您获得鼠标按键事件之前总会有鼠标按下.

老实说,我认为无论如何都不会有任何理由……哦等等……我可以将我的应用程序图标分成几个区域……不确定它是否已经破坏隐私法,但是,如果你可以知道用户在屏幕上的图标位置.

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...