親ウィンドウのサイズを変更するとNSViewの内容が比例して拡大されるようにしています。最初に、インターフェイスビルダーで、自分のNSViewをウィンドウに追加し、AppDelegateにNSViewのリファレンスを追加しました。私のことはscrollView
と呼ばれることがあります。 scrollView
から自動サイジングの動作をすべて削除しました。
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
// keep the aspect ratio constant so that the content looks good
[window setContentAspectRatio:NSMakeSize(2, 1)];
window.delegate = self;
}
- (void)windowDidResize:(NSNotification *)notification {
// size the scrollView to fill the window, but keep its bounds constant
NSRect rect = [[window contentView] frame];
NSRect oldBounds = [scrollView bounds];
[scrollView setFrame:rect];
[scrollView setBounds:oldBounds];
}
これはあまりにも窓デリゲートにAppDelegateを回す:
その後、私AppDelegateに私はこれを追加しました。私はそれに多くの論理を持っていないので、良い。フレームを変更しながら境界を一定に保つことによって、scrollView
の内容はスムーズに縮小されます。
ドキュメントでは、ビューの境界を設定すると、フレームが変更されたときに固定されたままになることが示唆されています。理論的には、境界が変更されない場合、フレームが変更されたときにコンテンツが変換でレンダリングされます。しかし、私は境界を未解決のままにする方法を研究していません。 http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CocoaViewsGuide/Coordinates/Coordinates.html%23//apple_ref/doc/uid/TP40002978-CH10-SW10 – Douglas