我有一個NSWindowController與setCurrentView方法,其中我使用下面的代碼來調整窗口的大小以適應新視圖的大小。調整NSWindow以適應新的NSView導致視圖被錯誤地繪製
[self resizeWindowForContentSize: [newView frame].size];
NSView *contentView = [[self window] contentView];
NSDictionary *ani = [NSDictionary dictionaryWithObject:transition
forKey:@"subviews"];
[contentView setAnimations:ani];
[[contentView animator] replaceSubview:currentView with:newView];
編輯:增加了我對CocoaDev發現resizeWindowForContentSize。
- (void)resizeWindowForContentSize:(NSSize) size {
NSRect windowFrame = [NSWindow contentRectForFrameRect:[[self window] frame]
styleMask:[[self window] styleMask]];
NSRect newWindowFrame = [NSWindow frameRectForContentRect:
NSMakeRect(NSMinX(windowFrame), NSMaxY(windowFrame) - size.height, size.width, size.height)
styleMask:[[self window] styleMask]];
[[self window] setFrame:newWindowFrame display:YES animate:[[self window] isVisible]];
}
我遇到的問題是,當你的看法(使用NSToolbar)之間切換的觀點開始在內容查看走動。隨着時間的推移,他們實際上越來越遠,直到最終只有一片空白的景色。
您可以發佈您'-resizeWindowForContentSize:'方法? – NSGod 2011-06-08 20:30:44
我已經使用該方法更新了帖子。 – doomspork 2011-06-08 20:44:29