最近Cocoa Bindingの練習も兼ねてIRcatをCocoa Bindingを使って書き直しています.面倒だった部分もすっきり書けていいのですが, 思った通りの動きをしない場合もあります.
一番うまくうごいてくれないのが, NSPopUpButton. valueをbindingするとセパレタも出せないのは有名ですが,その他もいまいち動いてくれません…
NSPopUpButtonにおける選択された項目に関するBindingはselectedIndex, selectedObject, selectedTag, selectedValueの4つ. 使い勝手がいいのは NSMenuItemのrepresentedObjectにNSStringを設定すれば, それがそのまま使える selectedValue だと思います.
ただ, これがうまく動いてくれません. メニュー自体は手動で作るのですが, 作成後にsynchronizeTitleAndSelectedItemを呼び出しても, 選択された項目を更新してくれません. Modalが変更されたらちゃんと追随してくれるのですが,値取得後にメニューを変更しても値を更新してくれないのが問題のようです.refreshなりreloadなりがあればいいのですが, それっぽいのは無いので, Modalを無理矢理更新するなどの方法しかないようです.…なんとかならないものでしょうかねぇ…
0 件のコメント:
コメントを投稿