OSX でアラートダイアログ(Windows で言う所のメッセージボックス)を出すだけのプログラムを書こうと思った。

ちなみに Windows で Win32 API を直接触る場合はこんな感じである。

#include <windows.h>

int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
    int ret;
    ret = MessageBox(NULL, "Are you sure?", "MessageBox Test",
                     MB_ICONWARNING | MB_YESNO);
    if (ret == MBYES)
        ....
    return 0;
}

何しろ OSX で GUI プログラミングしたことないので、Windows で言う所のメッセージループの書き方とかそういった直接アラートダイアログを出す部分以外の記述方法が分からないのだけど、とりあえずコマンドラインツールプロジェクトを作って以下のようなものを書いてみたらうまくいったように見える。ObjC ではなく Swift である(今更 ObjC など使いたくない)

// import Foundation // アラートダイアログを出すだけなら要らないらしい
import Cocoa

let alert = NSAlert();
alert.messageText = "Alert Test"
alert.informativeText = "Are you sure?"
alert.alertStyle = NSAlertStyle.WarningAlertStyle
alert.addButtonWithTitle("Yes")
alert.addButtonWithTitle("No")
let ret = alert.runModal();
if ret == NSAlertFirstButtonReturn {
    ....
}

OSX の アラートダイアログ

ちなみに NSAlert オブジェクトは再利用できるらしい(単一のオブジェクトで何度でも runModal を呼べる)

Trackback

no comment untill now

Add your comment now