问题标签 [mission-control]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cocoa - 当 Mission Control/Exposé“显示桌面”处于活动状态时显示 NSWindow
我正在构建一个 Cocoa 应用程序,它允许您将文件从 NSTableView 拖放到您的计算机上。就个人而言,我知道我并不孤单,当我使用这样的应用程序时,我会抓取文件,调用“显示桌面”热键,这会使我所有的窗口消失,然后我将文件放在桌面上。
但是,如果这些文件已经存在于我的桌面上,或者我将它们放在任何地方,则会出现一个警告表,询问我是否要覆盖这些文件。但由于我处于任务控制/Exposé“显示桌面”模式,工作表浮动在我的桌面中间,而不是附加到我的 NSWindow...
理想情况下,如果我的应用程序必须显示一个警报表,而所有窗口都在屏幕外,我想将我的窗口向前并退出此模式,以便该表附加到它而不是浮动在我的桌面中间,但我找不到有关该主题的太多信息。我已经尝试了标准makeKey
和orderFront
战术,但没有骰子。我也研究过 NSWindows setCollectionBehavior
,但这些选项似乎都不适用,除非我只是想让我的窗口始终保持在外面并忽略这种模式。
有谁知道在“显示桌面”模式下如何将 NSWindow带出Exposé?
macos - OSX: Monitoring Event when Mission Control is activated
I am trying to listen to Mouse Event and Keyboard Event by attaching global event listener, as describe in this great thread.
However, when Mission Control is called, it seems that it blocks my listeners. I really appreciate any suggestion on how to work around this.
macos - Capture all NSWindows as active images like Mission Control in Mac OS X
I'm looking to aggregate live representations of all windows. Much like Mission Control (Exposé), I want to extremely quickly access the image buffer of any given NSWindow or screen. Ideally, I want to composite these live images in my own OpenGL context so I can manipulate them (scale and move the windows screen captures around).
Things that are too slow:
CGDisplayCreateImage
CGWindowListCreateImage
CGDisplayIDToOpenGLDisplayMask
&CGLCreateContext
&CGBitmapContextCreate
Any other ideas? I'm trying to achieve 60 fps capture/composite/output but the best I can get with any of these methods is ~5 fps (on a retina display capturing the entire screen).
nsstatusitem - 启动任务控制时,状态栏应用程序弹出窗口始终位于顶部 OSX
我正在为 OSX 开发一个状态栏应用程序,我正在尝试复制 Dropbox 使用的弹出框的行为,到目前为止,我已经设法让所有所需的行为正常工作,除了当我打开任务时control popover 不会消失,它只是停留在任务控制的顶部覆盖部分。最近几天我一直在努力搜索,但尚未提出解决方案。我唯一能想到的可能就是让听众聆听向上 3 根手指的滑动?获得像弹出框行为这样的 Dropbox 是一件非常痛苦的事情,所以我计划在完成所有工作后将示例应用程序上传到 GitHub,以帮助人们节省一些时间来寻找解决方法!有没有人遇到过这个问题?干杯!
这是带有弹出框“MenuBarController”#import“MenuBarController.h”逻辑的类
macos - 操纵“空格”以更快地滑动
制作应用程序时,如何与空间通信以从桌面 1 更改为桌面 2?
我是通过 plist 来做的吗?com.apple.spaces.plist 似乎每次我打开一个新空间时都会记录,但是我从那里去哪里?另外我注意到,如果您在终端中使用 1、2、3 打开任务控制,它将激活各种窗口设置。
如果有一个清晰的类我可以扩展会很好我只是在框架中搜索这个吗?
只是需要一个方向,谢谢。
通过我发现的默认值进行的新更新:
可悲的是,当我将它们更改为 0 或 1 时,没有发生明显的变化。
更新三号,
这会禁用任务控制,但奇怪的是,如果我查看 com.apple.dock.plist 中没有提到 mcx。如果在任何地方都没有提到这些命令,人们如何找到这些命令?
macos - 以编程方式向 Mac 添加/删除工作区
我有一个相当简单的问题。我将如何以编程方式添加/删除在任务控制中找到的工作区。我在这里看到这篇关于以编程方式更改到另一个空间的帖子,我认为它可能类似于答案,使用CGSPrivate.h
. 我不需要担心私有框架,因为它不在应用商店中。
编辑:我还看到了一篇关于修改com.apple.spaces.plist
和添加工作区的帖子,但我不知道如何添加它,因为 dict 有 UUID 和其他东西。
bash - 使用脚本操作 OS X 窗口
好的,所以我试图通过创建一个可以在早上运行的脚本来使我的设置变得超级简单,该脚本将启动我当天使用的所有应用程序,并将它们按我喜欢的方式布置在我的“空间”中。
一切顺利,我可以轻松地让 bash 脚本启动应用程序,然后调用 AppleScript 来移动和调整窗口大小。
但是,我喜欢使用新的 El Capitan 功能并将我的一些空间作为“拆分视图”空间。例如全屏 Xcode/终端拆分。我似乎找不到通过脚本控制它的方法。
Tl; dr 有谁知道如何获取 bash 脚本/AppleScript 以将两个应用程序放入 OS X El Capitan 上的“拆分视图”中?
cocoa - Mac/Cocoa:如何确定窗口屏幕是否有菜单栏和 Dock?
我第一次尝试提出以下问题时显然出了点问题:
我正在尝试编写一个传统的全屏切换功能,该功能应该在当前屏幕(监视器)上将一个窗口置于或退出全屏模式,同时不影响其他屏幕的内容 - 无论空间是如何配置的。
我已经让它适用于“传统”空间模式,其中每个空间跨越所有连接的屏幕。在这种情况下,主屏幕上只有 1 个菜单栏和 Dock,可以使用[[NSScreen screens] firstObject]
. 因此,我可以做类似的事情
仅当全屏窗口位于主屏幕上时,才能使 Dock 和菜单栏自动隐藏。
Apple 无法在不重新启动登录会话的情况下切换 Spaces 设置,所以我什至不知道当屏幕有单独的 Spaces 时上面的代码是如何工作的。我怀疑它[[NSScreen screens] firstObject]
仍然会包含左上角位于 (0,0) 的屏幕,因此其他屏幕上的全屏窗口将继续使菜单栏和 Dock 可见。此外,我仍在运行 10.9,并且也希望在以后的版本中立即获得此权利。
有没有办法以编程方式确定Spaces 的配置方式或知道给定屏幕是否包含菜单栏/Dock?谷歌搜索没有给我任何与代码相关的结果。不知何故,我错过[NSScreen +screensHaveSeparateSpaces]
了我的磁盘文档,这是我问题的最终答案吗?
macos - 如何在 macOS 上以编程方式获取当前工作区
我希望能够随时告诉用户当前在 macOS 10.13 上以编程方式使用的任务控制工作区。我在搜索过程中找不到任何有效的答案。任何语言都可以,任何工作区标识符都适合我(uuid,工作区编号......)
感谢您的帮助!
bash - Osascript/Applescript:取消选中“显示器有单独的空间”
任务控制中 Mojave 10.14 的标准配置是选中“显示使用单独的空间”。
我希望它不被选中...
有没有办法用 applescript/osascript 做到这一点?
这是我尝试过的,但它没有点击复选框..