我试图绘制从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
。我选择了子类,因为我的理解是我可以使用键盘输入,这就是我想要的。
你已经实现了-draw:
方法。这不是对MTKView
的任何方法的重写。 MTKView
有一个不带参数的-draw
方法。如果要覆盖该方法,则需要更改方法的签名。
也就是说,重写-draw
以记录消息然后调用超类实现是合理的,但是你不应该覆盖它来进行实际的绘制。为此目的,应该重写-drawRect:
方法。我不知道为什么没有调用你的方法的覆盖(虽然你确实得到了错误的参数类型)。