1

不可解な問題があります。ペン先で初期化されたバニラ NSView へのポインターがあります。私はNSViewにメッセージを送りました:

[myNSView setFrame:NSMakeRect(0,0,816,1056)];

しかし、デバッガーをステップ実行するとmyNSView、フレームが{{0,0}, {801, 1041}}. 長方形の寸法は、私が指定したよりも 15 小さいです! これは一貫して発生します。2 つ続けて指定する[setFrames]と、すべてが機能しますが、もちろんそれは答えではありません。

なぜsetFrame失敗するのですか?

4

1 に答える 1

4

15px は、NSRegularControlSize の NSScroller のサイズとまったく同じです。

私の推測では、スクローラーを自動的に非表示にするように NSScrollView が構成されていると思います。

NIB で scrollView の水平および垂直スクローラーをオフにしてみてください。それで問題が解決する場合は、そこからどこを見ればよいかがわかります。これは、documentView を自動サイズ変更する scrollView の clipView に関連するものです。スクローラーが表示されると、clipView 自体が自動サイズ変更されます。documentView を、スクローラーを必要とする frameSize (私が推測する 100% の設定) に設定した直後。

于 2009-05-08T22:26:05.677 に答える