日々精進

新しく学んだことを書き留めていきます

メニューバーに表示しているViewの横幅を変更するときの注意

メニューバーに表示しているViewをinnerView、innerViewを含むNSStatusItemをitemとすると、
以下のコードだとメニューバーに何も表示されなくなる。

[innerView setWidth:30];
innerView.item.length = innerView.frame.size.width;



原因はitem.lengthが変更されるとフレームワークがitem.viewのwidthも変更するため、無限ループになること。
以下のようにinnerViewは変更しないようにするとうまくいく。

innerView.item.length = 30;