我想在 Interface-Builder 中设置一个自定义 NSView,但我不让它适用于 OSX。
在我的 ViewController 的 .xib 中,我添加了一个自定义视图并将 Class 设置为 MyCustomView。我创建了 MyCustomView.h、MyCustomView.m 和 MyCustomView.xib。
在 MyCustomView.xib 中,我也将 Class 设置为 MyCustomView。在 MyCustomView.m 中,被- (void)awakeFromNib
调用,但不是。- (id)initWithCoder:(NSCoder *)aDecoder
- (id) awakeAfterUsingCoder:(NSCoder*)aDecoder
我想要实现的是,在我的 ViewController 中,我添加的视图被我在 MyCustomView.xib 中设置的视图“填充”。最好的方法是什么?
编辑:我认为我不够清楚......
我的 ViewController 包含一个名为 MyCustomView 的自定义视图。
此视图应为 MyCustomView 类型,其中
MyCustomView.h MyCustomView.m MyCustomView.xib
存在。我已经将 MyCustomView.xib 的文件所有者设置为 MyCustomView,并且我已经将 ViewController 中的 CustomView 设置为 MyCustomView - 但它不起作用。
如果我这样做
- (void)awakeFromNib {
NSString* nibName = NSStringFromClass([self class]);
NSArray* topLevelObjects;
[[NSBundle mainBundle] loadNibNamed:nibName
owner:nil
topLevelObjects:&topLevelObjects];
NSView* view = topLevelObjects[0];
[view setFrame:[self bounds]];
[self addSubview:view];
}
我只得到一个 NSView 类型的视图,而不是 MyCustomView...没有简单的方法告诉 ViewController.xib 它是一个 MyCustomView 吗?
编辑 2:我上传了一个简单的项目
在https://dl.dropboxusercontent.com/u/119600/Testproject.zip您可以找到一个带有 MyCustomView 的简单项目(不在 ViewController 中,而是在 window.xib 中) - 但它没有显示位于MyCustomView.xib。我想做到这一点-最简单,最好的方法是什么?