如果我在Finder图标上OPTION + RIGHT CLICK
,我会在上下文菜单中看到“重新启动”选项。如果可能的话,我想以编程方式重新启动Finder。我确信有一个更好的方法来做它而不是杀死它并让它重新启动。假设我已经拥有相应的授权/许可权。
此外,我也想重新启动Spotlight。
答案 0 :(得分:5)
使用AppleScript向其发送退出事件,然后向其发送激活事件:
//tell Finder to quit
NSAppleScript *restartFinder = [[NSAppleScript alloc] initWithSource:@"tell application \"Finder\" to quit"];
[restartFinder executeAndReturnError:nil];
编辑:添加延迟以确保Finder准备好接收激活事件。在我的机器上,有时它需要这种延迟,有时它不会:
//delay 1 second
restartFinder = [[NSAppleScript alloc] initWithSource:@"delay 1"];
[restartFinder executeAndReturnError:nil];
(...结束编辑)
//tell Finder to activate
restartFinder = [[NSAppleScript alloc] initWithSource:@"tell application \"Finder\" to activate"];
[restartFinder executeAndReturnError:nil];
答案 1 :(得分:3)
Finder由系统保持活着,所以你可以杀死它,它会自动重新启动。我使用killall Finder
来完成此任务。
答案 2 :(得分:-1)
'重新启动'几乎肯定只是向Finder发送一个终止信号。
答案 3 :(得分:-1)
使用killall Finder
杀死Finder,因为系统会自动重新启动它。
[[NSTask launchedTaskWithLaunchPath:@"/usr/bin/killall"
arguments:[NSArray arrayWithObjects:@"Finder", nil]] waitUntilExit];