Я пытаюсь открыть Системные настройки из приложения macOS в песочнице, чтобы пользователь мог вручную включить определенную настройку.
AppleScript activate
Выводит приложение на передний план, при необходимости запуская его.
Я использую macOS 10.13.6 и Xcode 10.0.Цель развертывания установлена на OS X 10.11.
Я запускаю следующий AppleScript из изолированного приложения:
let script = """
tell application "System Preferences"
activate
set current pane to pane id "com.apple.preferences.extensions"
end tell
"""
let appleScript = NSAppleScript(source: script)
var errorInfo: NSDictionary? = nil
appleScript?.executeAndReturnError(&errorInfo)
Я также добавляю цели сценариев с правами на доступ к песочнице, позволяя системным настройкам отображать панели:
<key>com.apple.security.scripting-targets</key>
<dict>
<key>com.apple.systempreferences</key>
<array>
<string>preferencepane.reveal</string>
</array>
</dict>
Это несколько работает, когда я добавляю Право.Приложение «Системные настройки» запускается, если оно закрыто, и открывает правильную панель.
Словарь errorInfo
равен нулю и не содержит информации об ошибке.
В консоли отображается сообщение , котороевозможно, не относится к журналу спама :
AppleEvents: получено сообщение о мах, которое не было сложного типа, как ожидалось в getMemoryReference.
Однако приложение не активирует .Окно «Системные настройки» не выходит вперед.Приложение переходит на правильную вкладку, но не выходит на первый план в качестве документов для состояния activate
.Он остается за любыми другими окнами переднего плана.
В случае, если системные настройки закрыты, приложение запускается.Но окно не будет добавлено на экран на переднем плане или фона, пока вы не нажмете значок док-станции.Затем откроется окно, уже перейдя на правильную панель.
Почему приложение не активируется?
Существуют ли другие необходимые права на песочницу, которые позволят активировать окно «Системные настройки»?