Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 目标相当于AppleScript:打开目录而不使每个查找器窗口从_Objective C_Cocoa_Applescript_Finder - Fatal编程技术网

Objective c 目标相当于AppleScript:打开目录而不使每个查找器窗口从

Objective c 目标相当于AppleScript:打开目录而不使每个查找器窗口从,objective-c,cocoa,applescript,finder,Objective C,Cocoa,Applescript,Finder,这是苹果书 tell application "Google Chrome" to set index of window 1 to 1 do shell script "open /Volumes" 它可以在Finder中打开一个目录,而不需要将每个Finder窗口放在前面 目前我正在使用: [[NSWorkspace sharedWorkspace] openURL:fileURL]; 但是它有一个缺陷,就是把每一个Finder窗口置于其他窗口之上 你知道我怎样才能达到与Appl

这是苹果书

tell application "Google Chrome" to set index of window 1 to 1
do shell script "open /Volumes"
它可以在Finder中打开一个目录,而不需要将每个Finder窗口放在前面

目前我正在使用:

    [[NSWorkspace sharedWorkspace] openURL:fileURL];
但是它有一个缺陷,就是把每一个Finder窗口置于其他窗口之上


你知道我怎样才能达到与AppleScript相同的行为吗

如果Cocoa没有提供您想要的功能,您可以始终使用Objective-C运行applescript代码。

猜测,
-[NSWorkspace openURL::
也会向应用程序发送
激活
事件,而
打开
过程则不会

我建议您研究一下API。这是
NSWorkspace
open
在幕后使用的,但它比
NSWorkspace
有限的API提供了更多的控制

--


p、 如果您确实必须从ObjC调用
open
(或任何其他命令行工具),则应使用Cocoa的
NSTask
。(AppleScript的
do shell script
命令只是它的[crapy]等价物
NSTask

我知道,但是我们正在寻找一些不调用AppleScript的东西。如果
NSWorkspace
没有提供只打开一个窗口而不使每个查找器窗口都聚焦的方法,那么我怀疑你能用Cocoa做到这一点。如果您不想求助于applescript,那么您可以始终使用代码注入,但对于这样一个简单的任务来说,这似乎太过分了。