I have found the answer.
the right way is to implement the method abstracts in your MYWindow: NSWindow
BOOL needsEnableUpdate; -(void)disableUpdatesUntilFlush { if(!needsEnableUpdate) NSDisableScreenUpdates(); needsEnableUpdate = YES; } -(void)flushWindow { [super flushWindow]; if(needsEnableUpdate) { needsEnableUpdate = NO; NSEnableScreenUpdates(); } }
and in the matter of delegating NSSplitterView
#pragma mark NSSplitView Delegate -(void)splitViewWillResizeSubviews:(NSNotification *)notification { [window disableUpdatesUntilFlush]; }
My problem was that I was trying to use carbon calls:
DisableScreenUpdates(); EnableScreenUpdates();
instead of cocoa units:
NSDisableScreenUpdates(); NSEnableScreenUpdates();
source share