📅  最后修改于: 2023-12-03 15:21:55.599000             🧑  作者: Mango
如果你正在 MacOS 计算机上编写程序,也许会有需要从你的代码中打开一个新的 Finder 窗口。在这篇文章中,我们将会探讨几种方法来实现这个目标。
NSWorkspace
使用 NSWorkspace
类可以很容易地在 MacOS 计算机上打开一个新的 Finder 窗口。
#import <Cocoa/Cocoa.h>
- (IBAction)openFinderWindow:(id)sender {
[[NSWorkspace sharedWorkspace] openFile:@"/" withApplication:@"Finder"];
}
代码解释:上述代码创建了一个 openFinderWindow:
方法,该方法使用 NSWorkspace
类的 openFile:withApplication:
方法来打开一个新的 Finder 窗口。@"/"
参数告诉 openFile:withApplication:
方法从根目录开始打开 Finder 窗口,而 @"Finder"
参数则告诉该方法使用 Finder 应用程序来打开该窗口。
NSTask
使用 NSTask
类也可以在 MacOS 计算机上打开一个新的 Finder 窗口。
- (IBAction)openFinderWindow:(id)sender {
NSTask *task = [[NSTask alloc] init];
[task setLaunchPath:@"/usr/bin/open"];
[task setArguments:@[@"-a", @"Finder", @"."]];
[task launch];
}
代码解释:上述代码创建了一个 openFinderWindow:
方法,该方法使用 NSTask
类的 setLaunchPath:
方法和 setArguments:
方法来在 MacOS 计算机上运行 open
命令。@"/usr/bin/open"
参数告诉 setLaunchPath:
方法在 /usr/bin
目录下查找 open
命令,并运行该命令。@[@"-a", @"Finder", @"."]
参数告诉 setArguments:
方法使用 Finder 应用程序打开当前目录的窗口。
使用 AppleScript 语言也可以在 MacOS 计算机上打开一个新的 Finder 窗口。
- (IBAction)openFinderWindow:(id)sender {
NSString *script = @"tell application \"Finder\" to activate\ntell application \"System Events\" to keystroke \"n\" using command down";
NSAppleScript *appleScript = [[NSAppleScript alloc] initWithSource:script];
[appleScript executeAndReturnError:nil];
}
代码解释:上述代码创建了一个 openFinderWindow:
方法,该方法使用 NSAppleScript
类的 initWithSource:
方法和 executeAndReturnError:
方法来在 MacOS 计算机上运行 AppleScript 代码。AppleScript 代码的第一行告诉 Finder 应用程序激活(即:打开)它的窗口,而第二行告诉 System Events 应用程序模拟 Command + N
快捷键,以打开一个新的 Finder 窗口。
以上就是在 MacOS 计算机上从任何地方打开新的 Finder 窗口的几种方法。你可以根据自己的需求选择合适的方法来实现这个目标。