2010-04-21 4 views
4

NSSplitView에 NSOpenglView를 배치하면 스플리터를 드래그하는 동안 문제가 발생합니다. openGLView 및 SplitView의 크기가 비동기 적으로 조정됩니다. 애플 메일 목록 스레드에서 해결책을 찾았습니다. http://developer.apple.com/mac/library/samplecode/GLChildWindowDemo/Introduction/Intro.htmlNSSplitView의 NSOpenGLView

나는 탄소를 몇 개 가지고있는 해결책을 발견했습니다. 하지만 지금은 링크 오류 (릴리스 모드에서만) 얻을.

그래서 두 가지 질문이 있습니다. 스플리터 문제를 해결할 수있는 코코아 방법이 있습니까? 아니요 - 릴리스 모드에서 탄소 링커 오류를 수정하려면 어떻게해야합니까?

+0

아마도 더 이상 사용되지 않는 탄소 wrapers가 연결 오류를 보내고있을 것입니다. 다른 한편으로는 OpenGL과 UIKit 요소가 제대로 작동하지 않는다는 것을 읽었습니다 ... 단일 프레임 워크를 사용하는 것이 좋습니다. –

+0

UIKit은 없습니다. 코코아/맥 질문입니다. –

답변

4

답변을 찾았습니다.

:

올바른 방법이 MYWindow에 thees 방법을 구현하는 것입니다 :

BOOL needsEnableUpdate; 

-(void)disableUpdatesUntilFlush 
{ 
    if(!needsEnableUpdate) 
     NSDisableScreenUpdates(); 
    needsEnableUpdate = YES; 
} 

-(void)flushWindow 
{ 
    [super flushWindow]; 
    if(needsEnableUpdate) 
    { 
     needsEnableUpdate = NO; 
     NSEnableScreenUpdates(); 
    } 
} 

및 NSSplitterView 위임에

#pragma mark NSSplitView Delegate 
-(void)splitViewWillResizeSubviews:(NSNotification *)notification 
{ 
    [window disableUpdatesUntilFlush]; 
} 

내 문제는 내가 탄소 전화를 사용하려고이었다 구현 NSWindow 표시

DisableScreenUpdates(); 
EnableScreenUpdates(); 

코코아 1 대신 :

NSDisableScreenUpdates(); 
NSEnableScreenUpdates(); 
+0

감사합니다. 감사합니다. 감사합니다. 너 락. 명확성의 흔들림을 – Morgan

+0

, 내가 작성합니다 - (무효) disableUpdatesUntilFlush { 경우 (! needsEnableUpdate) { NSDisableScreenUpdates(); needsEnableUpdate = YES; } } –

관련 문제