我有一个NSSplitView作为我的“Superview”。在这个SplitView中是一个带有NSTableView的自定义视图。我尝试从Controller类加载我的自定义视图,然后调整自定义视图和表的大小。但是表和/或自定义视图不会调整大小。我做错了什么?
这是我的控制器类方法,我加载并设置自定义视图的大小:
//头文件
@property(弱)IBOutlet NSView * navigationView;
@property(强)AppsNavigationViewController * navigationViewController;
// Implementation
- (void) initNavigationView :(id)viewControllerClass :(NSString*) viewNibName {
_navigationViewController = [[viewControllerClass alloc]
initWithNibName:viewNibName bundle:nil];
// add the current custom view to the parent view
[_navigationView addSubview:[_navigationViewController view]];
[[_navigationViewController view] setAutoresizingMask:
NSViewHeightSizable|NSViewWidthSizable];
// set the bounds of the custom view to the size of the parent view
[[_navigationViewController view] setBounds:[_navigationView bounds]];
[_navigationViewController setDelegate:self]; // not relevant
[_splitView adjustSubviews]; // checked. contains the _navigationView
}
以下是它的外观:
修改 我将一些观点分类并绘制了不同的背景。而且它绝对是自定义视图,不能达到这个尺寸!
答案 0 :(得分:1)
似乎你的桌子的框架不是它的超级视图的原点。首先,尝试设置框架而不是边界,然后在执行此操作后调用它。
[[_navigationViewController view] setFrameOrigin:NSMakePoint(0,0)];
通常情况下,我通常设置这样的帧/边界,因为你的超级视图的界限可能不在其超级视图的{0,0} ......
NSRect newFrame;
newFrame.origin.x = 0;
newFrame.origin.y = 0;
newFrame.size.width = [[someView superview] frame].size.width;
newFrame.size.height = [[someView superview] frame].size.height;
[someView setFrame:newFrame];