阻止Mac UI控制绘画/重绘

时间:2011-11-17 22:34:01

标签: macos cocoa controls paint

您好我想知道是否有人可以解释如何启用/禁用重新绘制从nsview继承的任何类?

我知道Windows有一条消息可以发送给hwnd来启用/禁用小工具绘画消息。然后,这也传播给儿童hwnds。在Mac开发中是否有等效的方法?

我有一个现有的GUI库,我想知道是否有一种不需要修改现有源代码的方法吗?

2 个答案:

答案 0 :(得分:1)

如果问题在于您正在进行大量的控件布局工作,并且在发生这种情况时不希望绘图,则可以使用[NSWindow disableScreenUpdatesUntilFlush]或全局NSDisableScreenUpdates()和{ {1}}用于阻止屏幕更新,直到您准备好。

答案 1 :(得分:0)

我不确定你要做什么,但想象你有一个带有draw方法的NSView子类

·H

BOOL shouldDraw;

的.m

-(void)drawRect:(NSRect)someRect
{
    if(shouldDraw)
    {
        [super drawRect:someRect];
    }
}

如果你从不打电话给超级画画,那么就不会有任何画面。