问题标签 [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 投票
1 回答
492 浏览

macos - 我在哪里可以找到 Mac OSX 上“保存”和“打开”按钮的图标文件?

我正在 Cocoa 中寻找常用的“保存”和“打开”按钮(软盘图标/打开的文件夹图标)的图标。

按照建议,我搜索了以下路径:/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources

但是,我找不到“保存”和“打开”按钮的任何默认图标。

这两个按钮是否有任何默认系统图标?

0 投票
1 回答
685 浏览

objective-c - 可可 NSWorkspace setIcon:forFile:options: 不起作用

我正在将 png 文件复制到某个目标文件夹,然后将其图标设置为某个特殊图标。但是,图标不会改变 - 它仍然是 png 文件的预览。是否可以强制更换图标?也许以编程方式禁用 png 使用预览图像的倾向?

我正在做的是:

PS - 上面的代码适用于没有预览功能的文件(比如我用自己的特殊后缀手动创建的文件)。

谢谢,妮莉

0 投票
0 回答
249 浏览

objective-c - 在 OSX 中获取最前面的应用程序的活动文件

是否有机会通过 NSWorkspace、Accessibility API、Applescript 等在 Objective-C 中获取最前端应用程序的活动文件(假设该应用程序已打开文件)?

0 投票
0 回答
521 浏览

macos - 在 Mac OS X 上无需轮询即可检测代理应用程序启动和终止

我需要能够检测代理应用程序的启动和终止,而无需在 Mac OS X 上进行轮询

Apple 的技术说明 TN2050 建议使用 NSWorkspace 或 Kqueues。

似乎 NSWorkspaceDidLaunchApplicationNotifications 不适用于代理应用程序。我不完全理解为什么,但它对 LSUIElement=1 属性的存在很敏感。

KQueue API 只能使用 NOTE_EXIT 检测进程终止,并且会成功检测到应用程序代理的退出。但是,无法使用此 API 检测应用启动事件。

我还尝试了内核授权子系统,发现可以使用带有 KAUTH_VNODE_EXECUTE 的 KAUTH_SCOPE_VNODE 或带有 KAUTH_FILEOP_EXEC 的 KAUTH_SCOPE_FILEOP 来检测代理启动。但是我找不到使用 KAuth 检测进程终止的方法。

除了使用 KAuth 来检测启动和 KQueue 来检测终止之外,是否有更好的方法来检测代理应用程序的启动和终止?

谢谢

0 投票
2 回答
2067 浏览

objective-c - 在 Finder 窗口 OSX 中打开文件

我的问题是关于打开 Finder 窗口来显示文件。

要打开单个文件,可以这样做:

现在,如果用户尝试打开同一个 Finder,我需要一个 Finder file.path

为此,我添加file.path了一个数组。

Finder但是当用户关闭窗口并再次尝试打开文件时我被卡住了(因为活动窗口具有带有路径的数组)。然后Finder不显示:(

任何帮助如何进行此操作。


  1. 有没有办法检查Finder打开窗口的路径?

  2. 有没有办法为查找器获取回调,以便我可以file.path从数组中删除?

0 投票
1 回答
251 浏览

xcode - 无法杀死的、伪造的 NSRunningApplication 坐在我的 Dock 中?

我在 OSX 10.9.4 上使用 Xcode 5.1.1 来调试 Cocoa + OpenGL 应用程序。到目前为止,我只在 Xcode 调试器下运行过我的应用程序。上周我退出 Xcode 只是为了找到我的应用程序的图标仍在 Dock 中。使用 Show In Finder 将我带到 Xcode 的 DerivedData 中的调试可执行文件。我最终重新启动以摆脱它(更多内容),直到今天一切都很好。但现在我的 Dock 中有两个这样的图标。

问题:这些应用程序不能被杀死!强制退出什么都不做。它们不会显示在使用“ps aux”或活动监视器的进程列表中。Restart 只是陷入了一个试图摆脱它们的循环。只有强制重启 Mac 才有效。

根据 NSWorkspace 的 runningApplication 方法,有 NSRunningApplication 实例与这些应用程序相关联。但是进程 ID 与实际进程不对应。控制台日志中没有任何相关内容。

其他人遇到过这种情况吗?让 NSWorkspace 摆脱虚假的 NSRunningApplication 实例有什么建议吗?

0 投票
1 回答
1472 浏览

objective-c - 过滤 [NSWorkspace runningApplications] 以仅包含用户应用程序(无守护程序/UIAgents)

[NSWorkspace runningApplications]除了手动检查每个应用程序的 plist 是否有 UIAgent 键之外,有没有办法过滤由提供的应用程序列表以隐藏所有守护程序等?如果应用程序没有显示在 Dock 中,我对此不感兴趣。

0 投票
1 回答
651 浏览

macos - NSWorkSpace SetIcon not Refreshing

I'm using NSWorkSpace setIcon:forFile:options: on a folder.

However, while the API returns success(true) every time the api is utilized, sometimes the Icon is not updated on the folder.

I've noticed creating a new file inside of the folder will trigger the icon to reappear, which leads me to believe that Finder needs to refresh the folder.

Is there a way to determine when the Icon has actually been set, and the folder needs to be refresh? And is there a way to refresh the folder without creating & deleting a file quickly?

0 投票
1 回答
931 浏览

objective-c - 使用 NSWorkspace 在浏览器中打开多个 URL

在我的应用程序中,我想在网络浏览器中打开多个 URL。

我这样做是这样的:

Safari 现在一次只打开六个 URL,当我使用时,NSWorkspaceLaunchWithErrorPresentation我收到以下错误消息:

您无法打开应用程序“Safari”,因为它没有响应。

错误信息

现在,当我将捆绑标识符设置com.google.Chrome为更糟糕时,只打开了 4 个选项卡。Firefox ( org.mozilla.firefox) 也会打开 6 个选项卡。

0 投票
1 回答
282 浏览

cocoa - NSWorkspace 在启动邮件应用程序时抛出错误

我尝试了下面的代码,它对我来说工作正常。也能够启动邮件应用程序。

但它在控制台上向我抛出了以下错误消息,它实际上意味着什么。如何解决以下问题。