Swift tapCreate() 禁用后自动启用

橙锅

我已经用以下方法创建了水龙头:

 guard let eventTap = CGEvent.tapCreate(tap: .cgSessionEventTap,
                                               place: .headInsertEventTap,
                                               options: .defaultTap,
                                               eventsOfInterest: CGEventMask(eventMask),
                                               callback: myCGEventCallback,
                                               userInfo: nil) else {
                                               logger.info("failed to create event tap")
                                               exit(1)
                                             }

我的应用程序按预期工作。我的应用程序也可能在以下任何时候锁定机器tapCreate()

let task = Process()
task.arguments = ["-suspend"]
task.launchPath = "/System/Library/CoreServices/Menu Extras/User.menu/Contents/Resources/CGSession"
task.launch()

使用上述代码进入登录屏幕并重新登录后,上面创建的水龙头将通过此exit关闭

我一直没有成功找到登录挂钩或tap在用户重新登录后重新创建我的方法tap在这种情况下如何重新启动

橙锅

找到了一种在用户重新登录时获得通知的方法。这仅在启动应用程序的用户重新登录时触发。在 中applicationDidFinishLaunching,我添加了:

NSWorkspace.shared().notificationCenter.addObserver(self, selector: #selector(self.rebuildEventChains(aNotification:)), name: NSNotification.Name.NSWorkspaceSessionDidBecomeActive, object: nil);

登录时调用的函数:

func rebuildEventChains(aNotification : NSNotification){
    // re-enable the tap if is disabled
    // ...
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何自动禁用Swift Playground的启用结果

来自分类Dev

使用Swift以编程方式启用和禁用自动旋转?

来自分类Dev

禁用和启用UIButton-XCode Swift

来自分类Dev

Swift 3 - 禁用和启用分段控制

来自分类Dev

在Jinja2中被禁用后,重新启用自动转义

来自分类Dev

启用后如何禁用稀疏签出?

来自分类Dev

禁用后如何再次启用蓝牙?

来自分类Dev

禁用后如何阻止wifi重新启用

来自分类Dev

禁用后,JS无法启用该按钮

来自分类Dev

如何在Swift中启用当前禁用的按钮

来自分类Dev

启用/禁用 Tableview 单元格 - iOS - Swift

来自分类Dev

iOS swift 以编程方式禁用 wifi 自动加入选项

来自分类Dev

jQuery-ui sortable-禁用后再次启用sortable

来自分类Dev

Xcode:禁用后启用创建Git存储库

来自分类Dev

如何禁用和启用快速自动旋转?

来自分类Dev

pycharm禁用右括号并启用自动缩进

来自分类Dev

如何禁用/启用ubuntu的自动关闭功能?

来自分类Dev

自动启用/禁用SQL Agent作业

来自分类Dev

启用Swift的devstack安装

来自分类Dev

Swift WKWebView禁用Javascript

来自分类Dev

禁用UIPageViewController滑动-Swift

来自分类Dev

Swift:将UITableViewCell的大小设置为启用自动布局的父级UITableView的宽度

来自分类Dev

Swift脚本自动完成

来自分类Dev

Swift自动执行异步

来自分类Dev

Swift ZSH自动完成

来自分类Dev

Swift 自动代码生成

来自分类Dev

Swift UITableView 自动高度

来自分类Dev

如何禁用导航控制器(Swift)中特定视图控制器的自动旋转?

来自分类Dev

如何在 ios swift 中停止或禁用纵向/自动旋转应用程序?