Paepoi

Paepoi » JXA Tips » JXA でダイアログ

JXA でダイアログ

# 最終更新日 2019.20.06.14

アラート
#!/usr/bin/osascript

let app = Application.currentApplication();
app.includeStandardAdditions = true;

// alert
let r = app.displayAlert('日本語も問題無し', {
    message: 'buttonReturned が戻るので変数に入れています'
});

プロンプト
#!/usr/bin/osascript

let app = Application.currentApplication();
app.includeStandardAdditions = true;

// prompt
try {
    let res = app.displayDialog('プロンプト', {
        defaultAnswer: 'esc はキャンセル扱いになる'
    }).textReturned;
    console.log(`[${res}] が入力されました`);
} catch(e) {
    console.log('キャンセルされました');
}

Yes/No ダイアログ
#!/usr/bin/osascript

let app = Application.currentApplication();
app.includeStandardAdditions = true;

// Yes No
try {
    let yn = app.displayDialog('あなたはエッチですか?', {
        buttons: ['いやんエッチ!', 'はいエッチです'],
        defaultButton: 'はいエッチです',
        cancelButton: 'いやんエッチ!',
        withIcon: 'caution'
    });
    console.log('このドスケベ!');
} catch(e) {
    console.log('うそつき!');
}

リストから選択
#!/usr/bin/osascript

let app = Application.currentApplication();
app.includeStandardAdditions = true;

// List 選択
let b = app.chooseFromList(['YAMAHA', 'KAWASAKI', 'SUZUKI', 'HONDA'], {
    withPrompt: 'どのバイクメーカーが好き?',
    defaultItems: ['SUZUKI']
});
if (b) {
    if (b[0] === 'SUZUKI') {
        console.log('やっぱり SUZUKI だね!');
    } else {
        console.log('わかってねーな...');
    }
} else {
    console.log('選べよ!');
}

通知
#!/usr/bin/osascript

let app = Application.currentApplication();
app.includeStandardAdditions = true;

// Notifications
app.displayNotification('おはよう',{
    withTitle: 'ぼくノラクロ',
    subtitle: '起きる時間だよ、起きろー'
});
Copyright(C) sasakima-nao All rights reserved 2002 --- 2020.