问题标签 [nsworkspace]

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.

0 投票
2 回答
2005 浏览

cocoa - 检测何时卸载可移动存储

我正在开发一个应用程序,该应用程序应该检测当可移动存储被卸载或从 USB 中强行拔出时发生的事件。我怎样才能收到这些事件?

我已经看到NSWorkspace了顺利卸载设备的第一种可能性,但是这个类有卸载设备之类的方法-unmountAndEjectDeviceAtPath:。有人可以指出一些检测未安装卷的示例代码吗?

0 投票
2 回答
135 浏览

macos - 可可相当于diskEvt/kEventClassVolume?

我们的 UI 中有一个卷的下拉菜单,我想在挂载新磁盘时更新它。在经典时代,这将涉及观看diskEvt事件。在 Carbon 中,我认为这是kEventClassVolume. 可可等价物是什么?

(指向 Apple 文档的指针可以满足这个问题。我一直找不到任何东西!)

0 投票
4 回答
10617 浏览

safari - 无论系统浏览器设置为什么,都使用 Safari 打开 URL

在我的 Objective-C 程序中,无论系统的默认浏览器是什么,我都需要在 Safari 中打开一个 URL。这意味着这不起作用,因为它可以启动 Firefox 或任何其他浏览器:

我想我很接近这个:

只需要弄清楚如何将URL作为参数传递......有没有更简单的方法?

谢谢!

更新:以下代码使用我想要的 URL 启动 Safari,但 Safari 立即终止!任何想法为什么会这样?

我观察到相同的行为LSOpenFromURLSpec。如果 Safari 实例正在运行,它工作正常。如果没有 Safari 实例正在运行,它会启动一个新实例并立即终止它。

更新 2: Safari 仅在嵌入了 Flash 的网站上崩溃。使用上面的代码,我可以很好地打开 google.com,但是例如,Safari 会因 YouTube 视频而崩溃。

0 投票
2 回答
1495 浏览

macos - NSRunningApplication,返回最近使用的应用程序列表?

我正在尝试获取最近使用的应用程序的列表。NSWorkspace返回活动应用程序列表,我可以使用NSRunningApplication. 请参阅下面的列表:

我不想要发布日期,而是最近的“活动”日期(如方式cmd-tab排序)。有谁知道这个的解决方案?

0 投票
4 回答
1067 浏览

macos - Mac OS X - 监控应用程序启动?

我想为 Mac OS X 编写一个简单的菜单栏应用程序。用户只想在 Safari 打开时使用该应用程序。为了避免不必要地弄乱菜单栏,我想根据 Safari 是否打开来隐藏和显示菜单栏图标。

是否有一些通知可以让我的应用注册?我能想象的唯一解决方法是轮询正在运行的进程并查看是否启动了 Safari,但这似乎不是解决我的问题的一种优雅方式......

0 投票
1 回答
396 浏览

macos - 检测可弹出设备何时(未)插入 OS X

我想知道如何在大容量存储设备插入(或拔出)到 Mac 时收到通知。

0 投票
1 回答
1129 浏览

cocoa - 使用 NSWorkspace 启动应用程序而不激活它或切换空间

我尝试在后台启动一个应用程序,而不激活它。我只是用这种方法在NSWorkspace后台启动它:

唯一的问题是它不会激活应用程序,但它会将空间切换到该应用程序的分配空间。有什么办法可以避免这种情况?

0 投票
2 回答
628 浏览

objective-c - 在 Cocoa 中为沙盒确定消息的目的地

所以我只是在我的一个产品中添加了沙盒。除了工作流程中的最后一步是设置桌面之外,它完全可以使用。它通过 NSWorkspace 做到这一点。当我打电话

我收到以下错误:

对,所以我需要一个像这样的临时异常:

所以最终我需要弄清楚 XXXXX 中的内容,对吗?什么处理桌面设置?而且,更一般地说,是否有一种简单的方法来确定消息的目标包?

0 投票
1 回答
263 浏览

objective-c - NSWorkspace lauchApplication 怪异——它只能在 Xcode 中工作

当我从 Xcode 构建和运行时,或者当我在 Xcode 中右键单击“产品”时,此代码可以完美运行。但是,当我从 finder 运行应用程序时,它永远不会启动......即使在非常构建文件夹中...... wtf ?

0 投票
1 回答
3730 浏览

cocoa - Cocoa:沙盒授权启动另一个应用程序

我打电话

从我的沙盒应用程序中,我在控制台中收到此错误:

2011 年 9 月 5 日下午 12:23:12.462 lsboxd:拒绝为 21383 生成 <路径已编辑> - 原因 -10826

2011 年 9 月 5 日下午 12:23:12.463 应用程序:spawn_via_launchd() 失败,errno=54 标签=[0x0-0x1994993].MYApp 路径=<路径已编辑>标志=0

2011 年 9 月 5 日下午 12:23:12.464 应用程序:LSOpenFromURLSpec() 为应用程序 < PATH REDACTED > (null) 返回 -10810。

换句话说,我显然被“启动服务沙盒守护程序”(lsboxd)阻止了,它认为应用程序 1 不应该启动应用程序 2。

记录 10826 是“用户无权启动应用程序”,然后 10810 是“发生未知错误”

有谁知道这个案子的权利?

您如何从沙盒应用程序启动其他应用程序(请不要说 AppleScript - 这是一个无法运行的噩梦,尤其是从沙盒应用程序或 XPC 服务调用时)。理想的方法是在沙箱中使用(严重瘫痪的)NSWorkspace。