uch*_*aka 4 cocoa xib nsview nib nsviewcontroller
因此,NSViewController使用xib/nib 创建自定义子类.然后在app的主nib中,NSViewController从对象库中添加一个对象,将该类设置为自定义视图控制器类.IBOutlet在自定义视图控制器的应用程序委托中创建.
将NSView对象添加到窗口.将视图控制器的视图设置为窗口中的视图NSView.
当我构建和运行时,视图是主笔尖中的通用视图,而不是视图控制器的笔尖中的视图...
还有什么需要让这个过程按照我的想法运作?我认为这应该从自定义视图控制器的笔尖填充视图(和任何子视图).
我知道如何在代码中执行此操作,但它确实看起来像锅炉板.(特别是添加了自动布局约束.)
请告诉我,我错过了一些愚蠢明显的东西.
当您将view插座连接NSViewController到空的通用容器视图时,它将在运行时用空视图替换从NIB加载的实际视图.
不幸的是,没有办法完全通过使用Interface Builder和outlet来做你所要求的.最简单的替代方法:
将NSViewController对象添加到主XIB文件并在"属性"检查器中设置" Nib名称"和" Nib包 ",但不要将视图出口设置为空容器视图.
将属性添加到应用程序委托(或XIB中公开的其他控制器类)以创建IBOutlet视图控制器和容器视图的s.例:
@property (nonatomic, strong) IBOutlet NSViewController *viewController; // view controller in XIB
@property (nonatomic, weak) IBOutlet NSView *containerView;
Run Code Online (Sandbox Code Playgroud)
将XIB中的这些插座连接到视图控制器和容器视图.现在,在运行时,将视图控制器的视图添加为容器视图的子视图:
NSView *realView = self.viewController.view;
realView.frame = self.containerView.bounds;
// Also configure autoresizing behaviour for realView using either autoresizing masks
// or layout constraints so that realView resizes with its parent container
[self.containerView addSubview:realView];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2153 次 |
| 最近记录: |