我有一个包含 WebView 的自定义视图。我的自定义视图在其中进行自己的布局,resizeWithOldSuperviewSize:
然后调用resizeSubviewsWithOldSize:
以调整其子视图的大小。
我的自定义视图包含一个 WebView、一个 NSTextField 和另一个自定义视图。NSTextField 和自定义视图对窗口大小的变化反应非常好,但我的 WebView 只是以其原始大小坐在那里。
编辑:请注意,WebView的位置会按预期更改,但大小不会。
- (void)resizeSubviewsWithOldSize:(NSSize)oldSize
{
NSRect superBounds = self.superview.bounds;
// ... set frames on other subviews; works fine ...
// Move the WebView
NSRect oldFrame = webView.frame;
[self setNeedsDisplayInRect:oldFrame];
NSRect newFrame = NSMakeRect(superBounds.origin.x, 55.0, superBounds.size.width, superBounds.size.height - 55.0);
[webView setFrame:newFrame];
// This doesn't work:
// [[[[webView mainFrame] frameView] documentView] setNeedsDisplay:YES];
// Neither does this:
// [webView setNeedsDisplayInRect:newFrame];
}
有什么建议么?