objective-c - 如何检查 Exposé 是否已激活?

标签 objective-c cocoa macos apple-expose

我正在创建一个模拟 MacBook 多点触控触控板的应用程序。如您所知,在 MacBook 的触控板上

  • 如果向上滑动 4 个手指,则会触发“显示桌面”。
  • 如果向下滑动 4 个手指,则会显示 Exposé。

但是,如果正在激活“显示桌面”并且向下滑动 4 个手指,它将返回到正常模式。 Exposé 也是如此:如果 Exposé 正在激活,并且您向上滑动 4 个手指,它也会返回到正常模式。

问题是:我使用键盘快捷键 F3 显示 Exposé,使用 F11 显示“显示桌面”。问题是,当 Show Desktop 被激活时,如果我按 F3,它将直接进入 Exposé。当 Exposé 被激活时,如果我按 F11,它将直接进入显示桌面。但我希望它的行为像触控板,我猜它的代码可能如下所示

- FourFingersDidSwipeUp {
    if (isExposeBeingActivated() || isShowDesktopBeingActivated()) {
        pressKey("Esc");
    } else {
        pressKey("F11");
    }
}

但我不知道如何实现“isExposeBeingActivated()”和“isShowDesktopBeingActivated()”方法。我尝试创建一个窗口并检查其大小是否已更改(假设如果Expose被激活,其大小应该更小),但系统总是返回相同的大小。我尝试在 Expose 期间监视后台进程,但没有任何反应。有谁对此有什么建议吗?

(如果我的英语听起来很奇怪,我很抱歉。)

最佳答案

据我所知,除了指定您自己的应用程序窗口的“收集行为”的能力之外,没有任何与 Exposé 相关的功能的公共(public)接口(interface)。

关于objective-c - 如何检查 Exposé 是否已激活?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2626807/

相关文章:

macos - 如何使用 Parallels Desktop 无外设运行 Ubuntu Server?

ios - Xcode - 创建了一个 iOS 框架但不能在项目中使用它

objective-c - 使用纯文本文件存储任意元数据

cocoa - 在 Cocoa/Carbon 中全局隐藏鼠标光标?

macos - 如何将信息按钮添加到 OSX(非 iOS)应用程序中的 mapkit 注释

node.js - Mac 上的手写笔 : I get error trying to install it

ios - 无法在 Facebook 上分享视频

objective-c - 当我将 NSCollectionView 中的项目拖动到 Finder 时如何获取拖动目标 url

iphone - 线程中的 CADisplayLink

objective-c - 在 cocoa 中进行类型转换以修复警告