问题标签 [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 回答
1421 浏览

cocoa - 在 Finder 中显示在 10.8 中不起作用

这适用于 10.7,但不适用于 10.8。我如何让它在山狮中工作?

0 投票
3 回答
2334 浏览

objective-c - 如何在objective-C cocoa中显示带有“选择文件”的窗口

我在 OS X 上的应用程序中有一些操作,我必须从 finder 中选择文件。我想显示如下窗口:“打开文件”。我知道这让我打开带有路径的 url:

但是如何使用“选择”按钮显示窗口。这个窗口应该让我获得有关所选文件的信息。

我怎样才能正确地做到这一点?

谢谢你的帮助。

0 投票
2 回答
864 浏览

macos - COCOA : 将应用程序置于前端,从 NPAPI 插件启动

我有一个用于 MAC 的 NPAPI 插件,可以从服务器下载并运行应用程序。

当我使用 NSTask 打开应用程序时。该应用程序没有出现在前面。

我搜索了解决方案并想出了代码

但是这段代码没有把应用程序带到前面然后我尝试了下面的代码。

这没有产生预期的结果。

经过一番搜索,我发现了一些建议使用 NSWorkspace 来启动和激活应用程序的帖子。我想出了代码。

这一切正常,但不是在一种情况下。当应用程序通过 NSworkspace 命令第一次下载并执行时,MAC 会提示一个对话框“是从 Internet 下载的应用程序。您确定要打开它吗”。

如果按下确定,应用程序会启动但不会出现在最前面。此对话框仅在应用程序通过 NSWorkspace 启动时出现。使用 NSTask 启动,MAC 在执行前不会提示对话框。

找不到解决问题的解决方案。我对 NSWorkspace 的确认对话框很满意,但是任何人都可以提出一些在单击“确定”后仍会将应用程序带到前面的建议。

我也试过用。

对此的任何帮助将不胜感激。提前致谢。

问候,

懒人编码器 7.

0 投票
2 回答
189 浏览

macos - 当另一个 Cocoa 应用程序终止时通知一个 Cocoa 应用程序

假设有两个可可应用程序 APP1 和 APP2。我希望在 APP1 终止时通知 APP2。我想要一些在 APP2 中注册的回调函数,它会在 APP1 终止后立即调用。我怎样才能做到这一点?任何示例代码都将受到高度赞赏。

0 投票
1 回答
362 浏览

cocoa - 如何定位 Cocoa 窗口以最小化与其他窗口的重叠?

我正在开发一个具有主窗口和预览窗口的 Cocoa 应用程序。我希望预览窗口能够自动定位以尽量减少与其他窗口的重叠——它绝对不应该与我的应用程序的主窗口重叠,并且它应该尽量不与其他应用程序的窗口重叠。

我该怎么做?

0 投票
0 回答
661 浏览

macos - 无法使用 NSWorkspace launchApplicationAtURL:options:configuration:error 在 Mac OS X 10.8 中启动另一个应用程序

我正在使用 NSWorkspace launchApplicationAtURL:options:configuration:error 启动另一个应用程序。

该应用程序归 root 所有,具有权限:rwx rx rx,并归 root:wheel 所有。
该应用程序也位于/Applications 文件夹中(例如/Application/MyApp.app)。
根据“使用启动服务启动助手”部分下的以下链接:http: //developer.apple.com/library/mac/#documentation/Security/Conceptual/AppSandboxDesignGuide/AppSandboxInDepth/AppSandboxInDepth.html
我应该能够启动我的应用程序,因为满足以下条件:

该应用程序安装在 /Applications 和应用程序包中,所有内容都归 root 所有。

启动应用程序时,我收到以下错误:

“应用程序“MyApp”已损坏,无法启动。”
“操作无法完成。(OSStatus 错误 -10827。)”

也就是说,根据同一个链接,当没有满足任何条件时的错误。
请注意,我使用的是 Mac OS X 10.8。在 Mac OS X 10.7.5 中,我没有遇到同样的问题。
另请注意,我正在尝试在沙盒应用程序中运行应用程序“MyApp”。
我尝试使用 2 个版本的“MyApp”,但在两个版本中,问题都可以复制:

  1. 代码签名(使用自签名证书)
  2. 没有代码签名

似乎是什么问题?我错过了什么吗?

0 投票
1 回答
659 浏览

objective-c - 如何检查 Finder 是否将具有给定扩展名的目录显示为一个包?

对于给定的扩展,如何检查具有该扩展的目录是否会被 Finder 显示为一个包?

我认为下面的方法是一个有效的实现,但是创建一个临时目录感觉就像一个 hack。我猜我应该能够通过Launch Services API正确实现这一点,但我不太清楚该怎么做(虽然我可能忽略了显而易见的事情)。

编辑:上面的测试已经过编辑,包括额外的示例扩展(原始帖子仅使用“rtf”和“rtfd”)。

0 投票
1 回答
983 浏览

macos - 如何以编程方式更改系统范围的桌面图片?

我正在使用以下代码来设置桌面图片:

它工作正常,桌面图片根据我的需要更改。但它不会更改系统范围的桌面首选项(例如,每 30 分钟更改一次图片)。如何更改系统范围的桌面首选项?

0 投票
2 回答
317 浏览

macos - 需要在 MAC 上获取用户可见的当前正在运行的应用程序列表

我正在 MAC 中开发,需要获取当前正在运行的所有活动应用程序的列表,我的意思是那些具有实际窗口并且用户可以看到/关闭/最小化/最大化的应用程序。

我尝试使用 NSWorkspace runningApplications 函数,但它提供了一长串应用程序(很可能它还列出了一些隐藏的应用程序),但我只需要那些具有窗口 UI 的应用程序。

我还使用以下帖子中的建议来获取 Dock 下方的窗口,如果 Dock 可见,它可以正常工作: CGWindowListCreate 生成一个非常长的窗口列表

但是,当 Dock 隐藏时,此解决方案不起作用。

有谁知道如何让 MAC 上的用户可以看到正在运行的应用程序列表?

0 投票
1 回答
2528 浏览

objective-c - 无法检测到与其他用户一起运行的应用程序(通过切换用户)

用例:我以“ user1 ”身份登录并启动 Safari,然后单击右上角的“ user1 ”并将用户切换到“ user2 ”。现在,我正在尝试检测 Safari 是否正在为“ user1 ”运行,但我无法通过标准调用来执行此操作。我正在使用 OS X 10.8 Mountain Lion 来开发和运行我的代码。

我使用了以下内容但徒劳无功:

  1. [[NSWorkspace sharedWorkspace] runningApplications]- Safari 不在列表中
  2. GetNextProcess()- Safari 没有出现
  3. GetProcessForPID()- 我收到一个错误“没有这样的过程”

但是当我ps -aef | grep Safari从终端执行时,我可以看到 Safari。(这不仅适用于 Safari,其他应用程序也是如此。)

有人可以帮忙吗。非常感谢。