【发布时间】:2017-12-24 13:38:06
【问题描述】:
我正在尝试绘制从MTKView 子类化的视图,但未调用绘制方法。
@interface GameViewController : MTKView
@end
@implementation GameViewController
{
...
}
- (BOOL)acceptsFirstResponder
{
return YES;
}
- (void)drawRect:(CGRect)rect
{
NSLog(@"drawRect\n");
}
- (void)draw:(CGRect)rect
{
NSLog(@"draw\n");
}
没有调用记录的方法。为什么?
根据documentation,我应该使用委托或子类MTKView。我选择子类化是因为我的理解是我可以使用键盘输入,这是我想要的。
【问题讨论】:
-
您确定要将类的实例实例化为视图吗?它是否已添加到正在显示的窗口中?另外两件事:1)
-drawRect:的rect参数的类型是NSRect,而不是CGRect,在macOS 上。 2)MTKView的-draw方法不带参数。您的-draw:方法不相关,不会被框架调用。 -
@KenThomases 谢谢。修复2)解决了这个问题。如果您将其发布为答案,我可以接受。
标签: objective-c macos metal