NSScrollView内に配置すると、そのNSViewは左下隅に貼り付く。
原点を左上隅にあわせるためには、そのNSViewのサブクラスにて
BOOL isFlipped をオーバーライドして {return YES} を
返すようにすればよい。
であるが、ウィンドウをリサイズして、NSScrollViewが小さくなったときに
表示されている内容が上にスクロールしてしまう。
(NSScrollViewは自動的にリサイズするようにしておいたとして。)
絵にするとこんな感じである。
ウィンドウをリサイズすることにつれてスクロールビューもちいさくなる。 そのとき、狭くなった分だけ、表示されている内容が上に上がってしまう。 |
普通のアプリケーションはそのような状態にはなっていないので、当然なんとかなるはずが
その方法がわからず、なやんだ。
Appleのサンプルプログラムのsketchの状態を調べているうちに
やっと違いが見つかった。
Interface Builder のSize Inspector でのAutosizingの設定が不足していた
ことが原因だった。
これは、コンテンツのNSViewの設定である。
不十分な設定 |
対策 |
簡単なことであったが、知らないばかりに悩んでしまった。
まあ、いつも思うことだが、複雑な解決策は何か遠回りをしているものだ。
何かを解決できずはまってしまう時は、間違った方向に難しく考えすぎている
可能性がある。また、その方向で、何とか実現できたとしても、
その方法が自分でも気に入らない時は、おそらく、まだベストではない。
もっとシンプルな方法が見つかるはずなのだ。
0 件のコメント:
コメントを投稿