2009年11月26日木曜日

シートの上部が表示されない

日めくり」の作成中に遭遇した現象と解決策のメモ。

ファイル選択などのプルダウンシートの上部のグラディエーション部分が白抜きになって表示されません。


「日めくり」起動直後はこのように表示されるのですが、
「日めくり」を暫く動作させた後に再度表示させるとこのようになってしまいました。
メニューに新規の項目を追加させた直後だったため、追加したカスタムビューが原因かと思って試行錯誤しました。

しかし、メニュー項目の更新自体が原因であることが判明しました。
「日めくり」ではメニューを表示させたままメニューアイテムの表示/非表示を行っていました。この表示/非表示でメニューの表示領域(高さ)が動的に変わると、シートの表示がおかしくなる現象が再現します。

六曜のメニューアイテムがある時。


六曜のメニューアイテムを非表示にするとメニューの高さが変わります。
ポイントは、メニューが表示されたままで高さが変わることです。
メニューを表示する前に変更するのは問題ありません(通常のメニュー項目の変更)。
「日めくり」はメニューにカレンダーを表示するので、メニューを表示したままの操作が必要になっており、今回の問題に遭遇したようです。

解決策としては、
  • 六曜表示が有る時(2007〜2018)以外ではメニューアイテムを非表示にしていたのを表示したままにしました。
  • ボタンで年月を移動するビューとdatePickerで移動するビューを切り替える時に高さが変わらないようにしました。

でも、これってMac OSのバグッぽくないですかねぇ。。。

1 件のコメント: