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

objective-c - OS X Login helper app thinks app is already running

I'm working on implementing a helper app to launch a main, non-sandboxed app upon user login.

I want to make sure that, in the event there is already an instance of the app running at login, the helper app does not launch a second instance of the app, and terminates itself appropriately.

When I'm testing this, and looking at Console's output, I do see that my helper app already thinks there is an app instance running, even if there is not. So, the helper app will quit without launching the main app. Does anyone have an idea on why the helper app may think there is an existing app instance, even though there is not?

0 投票
3 回答
9763 浏览

swift - 使用 Swift 在 finder 中显示文件夹的内容

我希望能够选择一个文件夹并在 Finder 中显示其内容。我设法选择了文件夹本身并在文件夹中选择了一个文件。但我不知道如何显示空文件夹的内容。

例如

文件夹 A/文件夹 B

我想显示文件夹文件夹 B 的内容(可能为空)。

我写了以下代码:

这只会打开文件夹 A 并突出显示文件夹 B。这非常接近,但并不完全正确。

我需要能够在没有突出显示的情况下打开文件夹 B。我显然使用了错误的命令。

0 投票
1 回答
1448 浏览

objective-c - 如何在 OSX 上获取当前工作区/屏幕壁纸的路径?

从 AppKit 版本 10.7 开始,NSWorkspace.desktopImageForScreen可能会返回文件夹的路径,而不是当前作为壁纸的文件的 URL。此文件夹是将从中顺序拾取壁纸以进行显示的位置。(setDesktopImageURL发行说明中搜索)。

如果用户将桌面图像设置为每三十分钟左右随机更改一次,有没有办法确定 OSX 中每个屏幕当前活动的壁纸是什么?


更新:基于@l'L'l 没有回答,我创建了一个小型 Mac OSX 应用程序来方便地找到当前活动的壁纸:https ://github.com/musically-ut/whichbg

0 投票
1 回答
73 浏览

objective-c - Run .saver file from objective c Xcode

I want to upload a screen saver to the app store, after contacting them I was told to encapsulate the .saver inside the .app

I want to build a simple .app that launches the .saver which is in its bundle. However I failing to do so :(

I tried several solutions with NSTask and NSWorkspace but none works :(

Here are some attempts

What is the approach to launch it ?

0 投票
1 回答
300 浏览

macos - NSWorkspace openURL 未使用文件类型的默认应用程序打开存储在 iCloud Drive 中的文件

在我的应用程序中,我使用以下代码告诉 Mac OS X 打开指定 URL 的文件:

[[NSWorkspace sharedWorkspace] openURL:fileURL];

fileURL存储在我的应用程序的 iCloud Drive 容器文件夹中的文件的 URL在哪里。

在 El Capitan 中,似乎当一个文件被放置在应用程序的 iCloud Drive 容器中时,该文件的所有者更改为拥有该 iCloud Drive 容器的应用程序。

在我的情况下,这意味着我自己的应用程序被要求为存储在我的应用程序的 iCloud Drive 容器中的文件打开任何文件类型。如果您获取相同的文件并将其移动到桌面,原始默认应用程序将正确启动。

有没有其他人看到 El Capitan 的这种新行为?

我已经为它提交了一个雷达:rdar://22213595

希望有人找到了解决方法。如果文件存储在 iCloud Drive 中,则对于使用 NSWorkspace 的 openURL 命令的任何应用程序都会出现问题。仅仅因为我从我的应用程序链接到一个文件,并不意味着我的应用程序应该负责打开它。例如,iTunes 应该打开音乐文件,Preview 应该打开 PDF,Excel 应该打开 .xlsx 文件,当然除非用户另有说明。

文件位于某人驱动器上的哪个位置以确定使用哪个应用程序打开它并不重要。

0 投票
1 回答
707 浏览

swift - NSWorkspace 的 'frontmostApplication' 在初次使用后不会改变

我正在尝试获取当前活动(前台)应用程序的更新。甚至隔着电脑屏幕。我正在使用这段代码来尝试这样做:

这在命令行应用程序中每 3 秒循环一次,并打印到控制台。它适用于任何在首次启动时打开为活动的应用程序。

但是,它与之后的第一个应用程序相比并没有改变。1. 为什么要这样做?2. 使它工作的正确代码是什么?3. 有没有办法在每次最前端的应用发生变化的时候简单的获取应用名称?(最好在 swift 或 obj-c 中)

0 投票
2 回答
1564 浏览

macos - 在 Swift OS X 中无法接收 NSWorkspaceDidWakeNotification

我正在制作一个 macOS 应用程序,当计算机醒来时需要做一些事情并醒来,但我无法让听众工作。我觉得我什么都试过了。在AppDelegate.swift函数内部applicationDidFinishLaunching,我有:

在函数内部AppDelegate.swift但外部applicationDidFinishLaunching,我有:

我已经尝试了许多不同的方法来解决这个问题。我尝试听NSNotificationCenter.defaultCenter(),我尝试将选择器更改为sleepListener:and wakeUpListener:,我尝试从两个函数中删除参数,但到目前为止没有任何效果。真正有趣的是,我让另外两个听众完美地工作,NSWorkspaceScreensDidSleepNotification并且NSWorkspaceScreensDidWakeNotification,通过调用他们

引用函数

那么,这是我做错了吗?我应该提交错误报告吗?如果其他人可以在一个文件中运行此代码,让他们的显示器和他们的计算机进入睡眠状态,看看他们是否得到相同的错误,那将非常有帮助。如果有人知道我在世界上做错了什么,那就更好了。

先感谢您!

0 投票
2 回答
423 浏览

macos - OSX 内置强制退出应用程序如何获取其应用程序列表?

我正在尝试获取所有正在运行的具有窗口界面的应用程序,并且我发现强制退出应用程序实用程序中的应用程序列表非常理想。

在此处输入图像描述

但我不知道如何实现它,尝试过NSWorkSpace,它为我提供了所有正在运行的应用程序,包括很多其他应用程序。

那么如何归档这个功能呢?谢谢你的帮助!!

0 投票
0 回答
176 浏览

macos - 如何使用 NSWorkspace 在 Preview App 中打开多张照片

我试过上面的代码。它返回 true 并打开预览应用程序,但不打开照片。数组中的单个项目也不起作用。我究竟做错了什么?

0 投票
2 回答
1253 浏览

swift - OSX/Swift:屏幕可用时调用函数

我希望我的 OSX 应用程序在用户的屏幕可用时调用一个函数,例如:他们的计算机从睡眠中唤醒或用户打开他们的屏幕。基本上任何时候用户从没有屏幕活动到有一个活动,我希望我的函数被调用。

我不确定最好的方法是否是:

其中哪一个似乎是最好的方法,还是我应该完全做其他事情?某种示例 Swift 代码将非常有用,因为实现这些代码的代码片段似乎很少而且相差甚远。谢谢。