Aug 31, 2006

Binding と NSPopUpButton

NSPopUpButtonが変わらない

最近Cocoa Bindingの練習も兼ねてIRcatをCocoa Bindingを使って書き直しています.面倒だった部分もすっきり書けていいのですが, 思った通りの動きをしない場合もあります.

一番うまくうごいてくれないのが, NSPopUpButton. valueをbindingするとセパレタも出せないのは有名ですが,その他もいまいち動いてくれません…


NSPopUpButtonにおける選択された項目に関するBindingはselectedIndex, selectedObject, selectedTag, selectedValueの4つ. 使い勝手がいいのは NSMenuItemのrepresentedObjectにNSStringを設定すれば, それがそのまま使える selectedValue だと思います.

ただ, これがうまく動いてくれません. メニュー自体は手動で作るのですが, 作成後にsynchronizeTitleAndSelectedItemを呼び出しても, 選択された項目を更新してくれません. Modalが変更されたらちゃんと追随してくれるのですが,値取得後にメニューを変更しても値を更新してくれないのが問題のようです.refreshなりreloadなりがあればいいのですが, それっぽいのは無いので, Modalを無理矢理更新するなどの方法しかないようです.…なんとかならないものでしょうかねぇ…

No comments:

Post a Comment