부모 창 크기를 조정할 때 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