gpt4 book ai didi

objective-c - Swift 和我的空闲计时器实现(缺少 CGEventType)

转载 作者:可可西里 更新时间:2023-11-01 01:05:27 30 4
gpt4 key购买 nike

在 objective-c 中,我曾经基于以下 CoreGraphics 调用来实现我的空闲计时器:

CGEventSourceSecondsSinceLastEventType(kCGEventSourceStateCombinedSessionState, kCGAnyInputEventType);

现在在 swift 中,使用相同的基本调用,它看起来像:

CGEventSourceSecondsSinceLastEventType(CGEventSourceStateID.CombinedSessionState, CGEventType.MouseMoved)

在检查了头文件(例如定义了 CGEventType 的地方)之后,我找不到提及任何以我能够在 ObjC 实现中执行的形式执行任何操作的常量。

现在我可能可以通过查找常量的值并像那样处理它来解决这个问题,但我强烈不希望这样做。那时我宁愿使用 IOKit 重写。 它看起来基本上被定义为 (~0),但如前所述,我不想那样硬编码。

最佳答案

由于 ~0 定义是头文件 #define(在 CGEventTypes.h 中),因此不太可能更改,因为这样做会破坏二进制兼容性。对该值进行硬编码应该是安全的。

所以问题是获取表示 kCGAnyInputEventType(又名 ~0)的 CGEventType。

这是一种合理的类型安全的表示方式:

let anyInputEventType = CGEventType(rawValue: ~0)!
CGEventSourceSecondsSinceLastEventType(CGEventSourceStateID.CombinedSessionState, anyInputEventType)

关于objective-c - Swift 和我的空闲计时器实现(缺少 CGEventType),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31943951/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com