我创建了NSView的子类,允许我通过方法- (void)setBackgroundColor:(NSColor *)aBackgroundColor
轻松更改背景颜色。
我希望我的视图控制器的主视图成为这个子类,所以我用self.view = [[BetterNSView alloc] initWithFrame...
启动它。
在下一行,我尝试设置其背景颜色:[self.view setBackgroundColor:[NSColor greenColor]]
。但编译器抱怨说,NSView没有方法setBackgroundColor
。
要解决此问题,我需要使用类型转换:[(BetterNSView *)self.view setBackgroundColor:[NSColor greenColor]];
。这样可行。但是我不想要进行类型转换。
如何告诉编译器视图控制器的view
属性是BetterNSView
子类?记住,我没有使用IB。
答案 0 :(得分:2)
你有两个合理的选择。
view
属性的正确类型在视图控制器上创建一个访问者。真的,这是类型转换正常的情况之一。