Python

Python pyobjus macOSのNSAlertでアラートを表示

macOS向けに通知機能を実現する時に見つけたmacOS向けの以下のリポジトリを深堀りしてみる。

pyobjusは、Objective-Cのランタイムリフレクションを利用して、Objective-CのクラスをPythonのクラスとしてアクセスするためのPythonモジュール。サンプルコードのコメントを翻訳しつつ以下に示します。

from pyobjus import autoclass, objc_str
from pyobjus.dylib_manager import load_framework, INCLUDE

# AppKitフレームワークをpyojbusにロード
load_framework(INCLUDE.AppKit)

# nsalert classを取得
NSAlert = autoclass('NSAlert')

# NSAlertオブジェクトを作成し表示
alert = NSAlert.alloc().init()
alert.setMessageText_(objc_str('Hello world!'))
alert.runModal()