我已经创建了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
你有两个合理的选择。
- 在你的视图控制器上创建一个accessor,用正确的类型传递给
view
属性。 - 处理类型转换
实际上,这是类型转换是可以的情况之一。