ios - 在 iOS 上发布时获得接触

标签 ios cocoa-touch uitouch uievent

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

在 iOS 上有什么方法可以在不监听 touchesBegan: 的情况下获取当前的触摸事件?

我问是因为至少有一种情况没有调用 touchesBegan:在应用程序启动时,如果触摸已经在进行中,则永远不会调用 touchesBegan。事实上,据我所知,任何与触摸相关的 UIEvent 方法都没有被调用(UIApplication 的/UIWindow 的 sendEvent:,显然也是如此)。

我想根据启动时是否正在进行触摸来稍微改变我的应用程序的行为。 有什么方法可以在应用启动时检测正在进行的触摸

最佳答案

这是不可能的。原因很简单:触摸事件不属于您的应用程序。每个触摸都属于某个 UI 元素(或响应器)。如您所知,此元素获取开始、移动、结束和取消的消息。

即使在正确编程的应用程序中也是如此:与一次触摸有关的所有事件都传递给同一个对象。毕竟,另一个对象如何知道如何处理该事件,以及第一个对象应该如何正确完成其预期行为?

虽然您可以(或者可以,但可能不应该)在您的应用中找到变通方法,但没有办法进行跨应用触摸传递。

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

老实说,我看不出有任何理由需要这样做......哦等等......我可以将我的应用程序图标分成几个区域......不确定它是否已经违反了隐私法,但是,如果您知道用户在屏幕上的哪个位置有他的图标。

关于ios - 在 iOS 上发布时获得接触,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18193216/

相关文章:

ios - -[UITableView reloadData] 是异步的还是同步的?

iphone - itemFailedToPlayToEnd - MPMoviePlayerController - iOS7

ios - 如何在 ios 中点击按钮时实现日期选择器?

ios - 如何获取自定义单元格并通过索引路径使用它的自定义项 - swift3?

iphone - 带有部分、不连续填充区域的进度条 - iOS

ios - Objective-C iPhone 定期检查位置

iphone - 新的 UIView 未加载

ios - 使用 UIGestureRecogniser 子类化时未调用 Touches Ended

ios - 触摸时更改图像

ios - UIGestureRecognizer 与 UITouch 代理性能对比