Thousand B140

テスト版で修正した部分を反映したThousand B140リリース。
http://homepage.mac.com/k_natori/Cocoa/downloads/ThousandB140.dmg

  • ブラウザウィンドウの開閉後に処理が停止するまたはクラッシュする問題を修正
  • Tiger以前でラベル及びアクションボタンが正常に表示されない問題を修正

ソースコードもB140版に。
http://homepage.mac.com/k_natori/Cocoa/downloads/ThousandSrcB140.zip

nibのルートオブジェクト

要するにこういうことか。

  • nibのルートオブジェクトはFile's Ownerがreleaseしとけよ
  • でもnibのルートオブジェクトをコントローラとしてCocoa Bindingしてたら、release前にその解除もしろよ
  • でもでも、nibのルートオブジェクトであってもNSObjectControllerどもは勝手にreleaseされるぞ
  • しかも、NSObjectControllerのcontentアウトレットに接続してあるルートオブジェクトもそれに伴ってreleaseされるから
  • もちろんBindingの後始末もしてくれる

全然要約してないですよ俺、つまりこういうことですよ。

  • File's OwnerかNSObjectControllerサブクラス*1をコントローラとしたCocoa Bindingこそ正道なのです
  • 他のルートオブジェクトと直接Bindingすると面倒です

*1:あとWebViewもか

Tigerでラベルボタンとかアクションボタンが表示されない件(その2)

原因が判ったかもしれない。今度はちょっと自信があるので、Tiger使いの皆さんまたテストしてもらえませんか?
例によってテスト版。
http://homepage.mac.com/k_natori/Temp/ThousandTest1401.zip

追記:
今度は表示されたみたいです。原因はNSViewを設定したNSToolbarItemにminSizeとmaxSizeを設定していないという…初歩的なミスでした。ドキュメントにはちゃんと「設定しないとView表示されないよ」って書いてありましたよ。けどLeopardだときっちり表示されるんで、気付くのが遅れました。