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

iphone - 以编程方式打开 AppStore 的问题

我在打开应用商店时遇到问题(建议更新应用)。

这就是我正在做的事情:

canOpenURL 返回错误,我也尝试过没有条件但它不起作用。

此外,我尝试在 UIApplication 中使用 NSWorkspace 代替 openURL 方法,但我遇到编译错误,这肯定是依赖问题,但我找不到 Cocoa.framework 和 AppKit.framework 都无法将其中一个添加到我的 binaryLibraries项目。

0 投票
1 回答
617 浏览

objective-c - 完成启动后,应用程序不会发布 NSWorkspaceDidLaunchApplicationNotification

我的第一个应用程序监听 NSWorkspaceDidLaunchApplicationNotifications。当我启动我的第二个应用程序时,它不会在我的第一个应用程序中触发通知。启动任何其他应用程序确实会在我的第一个应用程序中触发通知。我什至尝试在第二个应用程序中手动发布通知,但它仍然不起作用。

任何想法为什么第二个应用程序可能不会触发它?

第一个应用程序

第二个应用

0 投票
0 回答
173 浏览

objective-c - 从沙盒应用程序访问自定义 Finder 标签

我有一个应用程序,它可以(除其他外)显示和更改文件上的 Finder 标签。NSWorkspace它通过'sfinderLabels和方法获取颜色和标签,并使用's和方法finderLabelColors获取和设置文件上的标签。这一切都很好。NSURLgetResourceValue:forKey:error:setResourceValue:forKey:error:

当通过 Finder 首选项更改标签名称时,就会出现问题。我发现NSWorkspace'sfinderLabels将始终给出默认名称(“红色”、“橙色”等),而不是用户输入的任何自定义标签名称。

我在这个项目中发现了一些代码,它们确实正确地获取了自定义 Finder 标签字符串,但是它是通过访问 Finder 首选项(特别是通过调用[[NSUserDefaults standardUserDefaults] persistentDomainForName:@"com.apple.Labels"])来实现的。除了感觉恶心之外,NSUserDefaults 参考说明:

沙盒注意事项
沙盒应用程序无法访问或修改任何其他应用程序的首选项。

我的应用程序是沙盒的,所以这显然行不通。

NSWorkspace所以我的问题是,为什么不finderLabels返回自定义 Finder 标签字符串,还有其他方法可以在沙盒应用程序中实现吗?

0 投票
1 回答
115 浏览

objective-c - 有没有办法减小 NSWorkSpace 启动的窗口的大小?

我使用这一行在浏览器中打开一个 url。

我想减小 NSWorkspace 创建的窗口的大小。是否可以通过编程方式实现?

0 投票
1 回答
2454 浏览

macos - 获取从另一个用户运行的应用程序的包标识符

场景是这样的:“我从一个用户运行一个应用程序(比如myproc),然后快速用户切换到第二个用户”
现在,当我尝试确定使用特定捆绑标识符(比如com.ak.myproc)运行的所有进程时; 对于从第一个用户运行的进程,我无法确定这一点。

我尝试了以下但徒劳无功:

  1. [NSRunningApplication runningApplicationsWithBundleIdentifier:]
  2. [[NSWorkspace sharedWorkspace] runningApplications]然后比较每个应用程序的包标识符 - 为第一个用户运行的应用程序甚至没有出现在此列表中。
  3. 使用sysctl()然后遍历进程列表 - 在这里,来自第一个用户的应用程序的 pid 确实来了。在那之后:
    • 当我尝试[NSRunningApplication runningApplicationWithProcessIdentifier:]时,我得到零。
    • 当我尝试GetProcessForPID()跟随时ProcessInformationCopyDictionary(),我得到一个 nil 字典。
    • 当我尝试GetProcessForPID()跟随时GetProcessInformation(),我没有得到任何有用的东西ProcessInfoRec

有人可以帮忙吗?谢谢。

操作系统:Mac OS X 10.8.4
Xcode:4.6.2

0 投票
2 回答
348 浏览

objective-c - 无法在 Cocoa 中找到正在运行的应用程序

我正在使用以下代码获取 Cocoa 中正在运行的应用程序列表:

但是,我从终端会话启动的应用程序未出现在列表中(“终端”显示良好)。该应用程序是从执行可可代码的同一用户启动的。

我在终端下启动的应用程序吗?在这种情况下,我怎样才能找到它的名称和参数?

在另一个终端会话中运行 ps 可以正确显示我的进程。

0 投票
1 回答
318 浏览

objective-c - 更改桌面上别名的图标?

我的桌面上有一个实际应用程序的别名。

现在我必须在运行时更改它的图标。我在用着,

但是/Application文件夹中原始文件的这个变化图标。而不是别名更改。

0 投票
1 回答
449 浏览

objective-c - 启动守护进程监听 NSWorkspaceDidLaunchApplicationNotification

我有一个启动守护程序,我希望它在每次应用程序启动时运行一个函数。

我目前NSWorkspace用于检查应用程序的启动。

/Library/LaunchDaemons/中的 parasited.plist

寄生的main.m

似乎我的进程parasited不断重启,我不知道为什么。我的目标是每次启动诸如“Safari、Mail、Finder 等”之类的应用程序时运行一个函数。

感谢您的帮助!

0 投票
1 回答
839 浏览

macos - 尝试在 Cocoa 中为文件设置图标

我尝试获取一个文件图标并将其设置回同一个文件(目标是覆盖,但我首先想让这个工作):

-> 结果是我的文件获得了标准的 Finder 图标,而不是保留自己的图标。有什么我做错了吗?

0 投票
1 回答
1018 浏览

objective-c - Cocoa [[NSWorkspace sharedWorkspace] iconForFile:filePath导致内存泄漏

我正在创建一个可可应用程序,我需要在其中找出文件/目录的图标图像。我正在使用它来获取给定路径的图标图像。

该方法在整个应用程序中被称为隐性调用。当我使用我的应用程序时,应用程序的分配内存会增加。当我查找内存泄漏时使用工具,我发现上述方法是造成 100% 内存泄漏的原因。我怎样才能消除这个内存泄漏,或者是他们的任何其他方式为什么我可以获得图标图像和内存不会成为问题。请帮助我的人。谢谢

编辑:

这是我调用此方法的方法。

方法 fileAtPath 从另一个递归调用,WEFile 类对象存储在一个数组中。并显示在表格视图中。

编辑 2:这是我调用 fileAtPath 方法的代码。当表选择传递目录路径作为参数时,会调用此方法 directoryAtPath。