为什么我的绘图方法未在子分类的mtkview中调用



我正在尝试从MTKView划分的视图中,但是绘图方法没有被调用。

@interface GameViewController : MTKView
@end
@implementation GameViewController
{
   ...
}
- (BOOL)acceptsFirstResponder
{
    return YES;
}
- (void)drawRect:(CGRect)rect
{
    NSLog(@"drawRectn");
}
- (void)draw:(CGRect)rect
{
    NSLog(@"drawn");
}

未调用所有记录的方法。为什么?

根据文档,我应该使用委托或子类MTKView。我之所以选择子分类,是因为我的理解是我可以使用键盘输入,这就是我想要的。

您已经实现了-draw:方法。那就是不是任何方法的MTKView方法。MTKView-draw方法不采用任何参数。如果您打算覆盖该方法,则需要更改方法的签名。

也就是说,覆盖-draw来记录消息,然后致电超级类实现是合理的,但是您不应该覆盖它以进行实际图纸。为此目的,应覆盖-drawRect:方法。我不知道为什么您没有调用您对该方法的替代(尽管您确实发现参数类型错误)。

最新更新