你应该读一下
Cocoa Drawing Guide
概念材料。你的观点被要求
-drawRect:
当系统认为有必要时。在这方面,可以随时要求您的视图绘制自己。因此,你必须从“绘制当前状态”的角度来考虑这一点。
您可能应该做的(在这个基本情况下)是给您的自定义视图一个布尔属性“drawit”,并让您的按钮操作在视图实例上切换它。这种方式
if (self.drawIt == YES)
,可以调用矩形绘图代码。
当
-抽签:
调用(就像用白色填充整个边界),然后仅在满足条件时绘制条件内容。
例子:
- (void)drawRect:(NSRect)aRect
{
// Clean up background (we ignore "aRect", drawing entire view at once)
[[NSColor whiteColor] set];
NSRectFill([self bounds]);
// Do we want to draw our magic rect?
if ([self drawMagicRect])
{
[[NSColor redColor] set];
NSRectFill([self magicRect]);
}
}