我正在开发一个实用程序,需要重新启动Finder才能显示更改。程序化终止后重新打开Finder窗口
我用NSRunningApplication
的terminate
功能,以确保没有复制操作正在发生的事情,等(SWIFT):
let apps = NSRunningApplication.runningApplicationsWithBundleIdentifier("com.apple.finder")
if apps.count > 0 {
let finder = apps[0]
finder.terminate()
}
因为我在sharedWorkspace.notificationCenter
监听NSWorkspaceDidTerminateApplicationNotification
,然后我就可以再次launchAppWithBundleIdentifier
启动搜索。所有这些工作都很好。
现在,当Finder再次启动时,之前打开的窗口已关闭。我想重新打开它们,而不管用户对“退出和重新打开应用程序时还原窗口”的偏好设置。
这是因为Finder重新启动是我软件活动的副作用,用户绝对不打算关闭窗口。
我可能会看到AppleScript发生这种情况,但我没有足够的经验来设计一种获得所有窗口状态(包括窗口位置和大小)的方法,在Finder重新启动期间存储它们,并在之后重新打开它们。
任何帮助将不胜感激!