2012-07-19 4 views
0

이것은 내 견과를 몰고 있습니다, 나는 약 일주일 동안 모든 것을 시도했습니다. 희망 솔 좀 도와 줄 수 있습니다. 새 모달 팝업 색상 선택기를 만들려고합니다. 그러나 StopModal()은 새 창을 계속 작성합니다.monomac에서 NSWindow를 초기화하십시오.

class ColorPicker:NSWindow{ 

    void ColorPicker(IntPtr Value):base(Value){ 
    } 

    void ColorPicker(Color StartColor){ 
     //Set up window here. 
    } 

    public void ShowModal(NSWindow NewParent){ 
     this.ParentWindow = NewParent; 
     NSApplication.SharedApplication.RunModalForWindow(this);  
     return DialogResult; 
    } 
} 

I는 다음과 같이 작성합니다 :

ColorPicker CP=new ColorPicker(Color.Red); 

그런 다음이

CP.ShowDialog(MyMainWindow); 

난에 버튼이 보여

나는 새로운 NSWindow, 프로그램 좀 같이 만들어 닫고 통화하는 양식

,
NSApplication.SharedApplication.StopModal(); 

그러나 어떤 이유로이 호출하여 두 번째 창을 생성합니다

void ColorPicker(IntPtr Value):base(Value){ 
} 

가 그럼 난 누출 오류를 얻을 곧 충돌 : 당신이 유지되지 않는 경우가 발생 될 수

NativeRelease ERROR]: type: ColorPicker handle: 137041376 count: 2 gchandle: 0 

objc[350]: Object 0x103070 of class NSConcreteMapTable autoreleased with no pool in place - just leaking - break on objc_autoreleaseNoPool() to debug 

답변

1

.NET의 ColorPicker 객체에 대한 참조입니다. 쓰레기 수집 후 코코아/목표 시스템이 메시지를 보내려고 할 때 다시 만들어집니다.

개체를 닫은 후 처리 할 때 나에게 발생합니다.

+0

소리가 들립니다. 나는 창문을 닫은 후 처분하고 있는데, 몇 시간 동안 창문에있는 창문으로 들어간 메시지를 보면서 물건을 망가 뜨리는 것을 보았습니다. 어떻게 해결할 수 있을까요? –

+0

내가 찾은 유일한 방법은 창을 처리하지 않는 것입니다. 나는 오류없이 달리 할 수있는 방법을 찾지 못했습니다. – Curtis

+0

그게 내가하기로 결심했습니다. 동일한 창을 보관하고 계속 사용하십시오. 당신의 도움을 주셔서 감사합니다. –

관련 문제