Xcode上で作成したAppleScriptアプリケーションでDark Modeの検出を行いたいときに、NSAppearance’s currentAppearance()で取得したら、正しくModeの検出が行えませんでした。同じコードをスクリプトエディタ/Script Debugger上で動かした場合には正しくModeの判定が行えているのですが。
そこで、System Eventsの機能を用いてMode判定を行うように処理を書き換えたりしてみたのですが、Mac App Storeに出すアプリケーションでこの処理を記述していたら、これを理由にリジェクトされてしまいました。
仕方なく解決策を探してみたところ、macOS 10.13用に書いたshell scriptによる迂回処理を、そのまま他のOSバージョンでも動かせばよいのではないかと気づき、結局そこに落ち着きました。
AppleScript名:Dark Modeの検出(Xcode上でも正しく判定) |
— – Created by: Takaaki Naganoya – Created on: 2020/04/22 — – Copyright © 2020 Piyomaru Software, All Rights Reserved — use AppleScript version "2.4" — Yosemite (10.10) or later use framework "Foundation" use scripting additions set apRes to retLightOrDark() of me –> true (Dark), false (Light) on retLightOrDark() try set sRes to (do shell script "defaults read -g AppleInterfaceStyle") return (sRes = "Dark") as boolean on error return false end try end retLightOrDark |
More from my site
(Visited 57 times, 1 visits today)