NSDatePickerでつまづく

2006年4月8日土曜日
nyuryoku.png

この解説のおかげで、Tableへの表示方法とか、更新方法とかわかったので、そこまでは良いとして、とりあえず上のような入力画面を作ってみました(ここまではドラッグアンドドロップだけで作れる。すごい)。ここではまったのが、NSDatePicker。比較的新しい機能らしく、カレンダーとか簡単に表示できるのですが、ここにディフォルトで今日の日付を表示させる、ところでつまづいたのです。

NSDatePickerには、setDateValueというメソッド?があるようで、これでいけるかと思って、

date = Time.now
@date.setDateValue(date)

としても何も入れてくれない。dateの部分に"2006-04-01 00:00:00 +0900"とかしてもダメ。NSDatePickerのドキュメントを見ると、NSDateオブジェクトを入れろ、とあるので、Time.now使ってるじゃん、とかやつあたり。

今度はRubyCocoaのドキュメントを見ると・・・


Cocoa派生クラスのインスタンスをRubyスクリプト中で生成する必要がある場 合には、既存のCocoaクラスの場合と同様に

AppController.alloc.init # use this

のように書きます。


と書いてあって、あーこれかーと思いました。そうだよ、NSDateオブジェクトとrubyのTimeオブジェクトは全く別物なんだよキミ。NSDateオブジェクトを生成するには、NSDate.initを使う必要があったのでした。

というわけで、awakeFromNibのところに

date = NSDate.init.date
@Date.setDateValue(date)

としたら、ばっちり。バンザーイ。dateじゃなくてdateWithStringとかも使えるので、思った日付を表示できそうです。

0 コメント:

コメントを投稿