【发布时间】:2014-09-03 08:01:45
【问题描述】:
在我的申请中,我有:
- 主窗口,包含一个“自定义视图”,它是一个 NSView 掉进了IB。
- 一个视图控制器 + 另一个 nib,包含一个视图和一些 控件。
当应用加载时,我正在使用:
initWithNibName:nibName andReplaceView:(the custom view) resize:YES
替换自定义视图。我知道 IB 中的视图有一个选项 placeholder,但我不知道如何使用它,而且我的应用程序以这种方式运行良好......
...除了加载的视图不继承替换视图的布局约束。
我该如何解决这个问题?
编辑:对不起,我忘记了这个函数是我的……我很久以前在一个类别中写的。这是代码:
- (id)initWithNibName:(NSString*)nibName andReplaceView:(NSView*)aView resize:(BOOL)resize
{
// 1. Loading the bundle
if (self = [self initWithNibName:nibName bundle:nil])
{
[self replaceView:aView resize:resize];
}
return self;
}
- (void)replaceView:(NSView*)aView resize:(BOOL)resize
{
if (resize)
{
NSRect insertionFrame = [aView frame];
[[self view] setFrame:insertionFrame];
}
else
{
NSRect insertionFrame = [aView frame];
insertionFrame.size.width = [[self view] frame].size.width;
insertionFrame.size.height = [[self view] frame].size.height;
[[self view] setFrame:insertionFrame];
}
NSView* supView = [aView superview];
[supView replaceSubview:aView with:[self view]];
}
【问题讨论】:
-
- initWithNibName:andReplaceView:resize:不存在…… -
-replaceView:resize:也是自定义的,所以我们无法知道它的作用。 -
@TomDalling 我更新了我的帖子。对不起。我在 2 或 3 年前写过它们...
标签: objective-c macos cocoa