ストップウォッチを作るでは NSTimer を使って定期的に Text Field の内容を更新していました。同じ事を Ruby の Thread を使って実現することができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
|
ストップウォッチを作ると同じように UI 部品を配置し、アウトレットとアクションメソッドを接続します。
NSTimer の長い呼び出しの記述が無くなっただけで、ずいぶん Ruby らしくなったのではないでしょうか。
また Text Field に文字列を設定するメソッドとして、今回は stringValue=
を使用しています。MacRuby には foo=
というメソッドを setFoo
と読み替える仕組みがあり、それを活用するとより Ruby らしいコードになるのではないでしょうか。
今回の Text Field のように、UI を更新する場合には単一のスレッドで行いましょう。(NSTimerを使ったものは、メインスレッドで更新しています)