【发布时间】:2015-08-11 14:01:02
【问题描述】:
在 Objective-c 中,我曾经基于以下 CoreGraphics 调用来实现空闲计时器:
CGEventSourceSecondsSinceLastEventType(kCGEventSourceStateCombinedSessionState, kCGAnyInputEventType);
现在在 swift 中,使用相同的基本调用,它看起来像:
CGEventSourceSecondsSinceLastEventType(CGEventSourceStateID.CombinedSessionState, CGEventType.MouseMoved)
检查头文件后,例如定义了 CGEventType 的地方,我找不到任何常量的提及,这些常量以我在 ObjC 实现中能够执行的形式执行任何操作。
现在我可以通过查找常量的值并像这样处理它来解决这个问题,但我强烈不希望这样做。我宁愿改用 IOKit 重写。 看起来它基本上被定义为(~0),但就像前面提到的,我宁愿不那样硬编码它。
【问题讨论】:
-
看起来这段代码没有为 Swift 注释,并且该用例被破坏了。我会归档一个雷达。也就是说,看起来
CGEventType.TapDisabledByUserInput与kCGAnyInputEventType具有相同的值。你能看看它是否有效吗? -
@BrianNickel 看起来它给出了预期的结果,但使用似乎将用于其他东西的东西确实感觉相当可怕......我想我将不得不在未来。
标签: objective-c macos swift cocoa appkit