📜  从任何地方打开新的 Finder 窗口 (MacOS) (1)

📅  最后修改于: 2023-12-03 15:21:55.599000             🧑  作者: Mango

从任何地方打开新的 Finder 窗口 (MacOS)

如果你正在 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

使用 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 窗口的几种方法。你可以根据自己的需求选择合适的方法来实现这个目标。