我的自定义NSView中包含一些自定义按钮,这些按钮在NSView的drawRect方法中作为子视图添加。
现在我发现按下按钮后会重复调用父视图的drawRect。有时它只在我退出应用程序时停止 - 我从drawRect中的简单日志语句中知道这一点。
现在我知道我的应用程序中可能存在更大的架构问题导致这种问题,我在哪里开始追踪导致此视图被重复重绘的原因?
谢谢!
答案 0 :(得分:1)
首先,您不应该在drawRect:
中添加子视图。
您是在进行任何自定义绘图还是仅添加子视图?如果您没有进行任何绘图,则不应实施drawRect:
。
您想在initWithFrame:
中添加子视图,然后根据layoutSubviews
在self.bounds
中设置子视图的框架。
如果您有任何疑问,请随时提出。
编辑:刚刚意识到你在询问NSView而不是UIView。我从未使用过NSView,但也许它们的工作方式类似。
编辑2:我读了一些关于NSView的内容,它似乎没有layoutSubviews
。也许您应该在drawRect:
中设置框架?我仍然非常确定您不想在drawRect:
中添加子视图。