(rontolisp) docs
← 関数

appkit:timer

(appkit:timer seconds fn)

seconds ごとに引数なしで fn を呼ぶ繰り返し NSTimer を開始します。fnnil を返すとタイマーは無効化されます。返り値はタイマーで、(objc:send timer "invalidate") でも止められます。fn は AppKit のイベントループの中、メインスレッドで走るので、ウィンドウを直接描き替えられます。objc の上に rontolisp で書かれ初回使用時に読み込まれる Cocoa ウィジェット層、appkit パッケージの一部です。macOS 専用 (java -jarrontolisp バイナリ、またはコンパイル済み .class / .jar.wasm は不可) で、ディスプレイが必要です。macOS GUI ガイドを参照してください。

CL-USER> (defvar *ticks* 0)
CL-USER> (appkit:timer 1
    (lambda ()
      (setq *ticks* (+ *ticks* 1))
      (appkit:set-text *label* (format nil "~a s" *ticks*))
      (< *ticks* 10)))
#<objc __NSCFTimer>