Tana Gone
Tana Gone
~1 min read

Categories

macOS Appの場合App起動前に、SQLite3のDBからデータを取り出す処理に失敗した時にApple Scriptのdisplay dialogを使って失敗を通知できる。ネットを漁って見つけたコードを残して置く。

alertDialog

import Foundation 

func alert(_ arg: String) {
  let myAppleScript =  """
tell application (path to frontmost application as text) to display dialog "\(arg)" buttons {"OK"} with icon stop
"""
  let process = Process()
  process.launchPath = "/usr/bin/osascript"
  process.arguments = ["-e","\(myAppleScript)"]
  process.launch()
}

let myMsg = "can't find database." 
alert(myMsg)

How to Trigger an Alert Dialog Pop-Up from Command Line in Mac OS – TechSpace Help Center)

Swift调用AppleScript脚本和Shell脚本 - 习七)

  • dialogでY/Nを答えたり、テキストボックスを表示して文字列を受け取ったり出来る。
nameChack () {
nameFlg=$(osascript << EOF
display dialog "あなたのお名前は ${name} で間違いないですか?"  with title "じゃんけんゲーム" with text buttons {"いいえ","はい"} default button 2
button returned of result
EOF)

【Mac】Apple Scriptのdisplay dialogの練習がてらじゃんけんアプリを作ってみる #ShellScript - Qiita

@EnvironmentObjectプロパティーラッパーで修飾したオブジェクトをUserDefaults.standardを使って保存と呼び出しを行う例

import SwiftUI

// ユーザー設定を管理するクラス
class SettingsModel: ObservableObject {
    @Published var username: String {
        didSet {
            saveToUserDefaults()
        }
    }
    
    init() {
        // 初期値はUserDefaultsから読み込み
        self.username = UserDefaults.standard.string(forKey: "username") ?? "ゲスト"
    }
    
    private func saveToUserDefaults() {
        UserDefaults.standard.set(username, forKey: "username")
    }
}