Я разрабатываю утилиту, которая должна перезапустить Finder, чтобы изменения отображались.Повторно открыть окна Finder после завершения программы
Я использую terminate
функцию NSRunningApplication
«s, чтобы убедиться в отсутствии операции копирования не происходит, и т.д. (быстрое):
let apps = NSRunningApplication.runningApplicationsWithBundleIdentifier("com.apple.finder")
if apps.count > 0 {
let finder = apps[0]
finder.terminate()
}
Поскольку я слушаю для NSWorkspaceDidTerminateApplicationNotification
в sharedWorkspace.notificationCenter
, я могу затем запустить Finder снова launchAppWithBundleIdentifier
. Все это прекрасно.
Теперь, когда Finder запускается снова, окна, которые ранее были открыты, были закрыты. Я хотел бы повторно открыть их, независимо от предпочтений пользователя для «Восстановить окна при выходе и повторном открытии приложений».
Это связано с тем, что перезапуск Finder является побочным эффектом активности моего программного обеспечения, и пользователь определенно не собирался закрывать окна.
Возможно, я видел, как это происходит с AppleScript, но я недостаточно опытен, чтобы создать способ получить все состояния окон (включая размещение и размер окна), сохранить их во время перезапуска Finder и повторно открыть их позже.
Любая помощь была бы принята с благодарностью!