목표는 NSWindow를 다른 NSWindow에 상대적으로 배치하여 부모를 드래그하면 자식도 함께 이동하도록하는 것입니다.NSWindow를 다른 윈도우의 자식으로 추가했지만 지속하지 않습니다.
디버거를 둘러 보았을 때 NSWindow 육아 관계가 올바르게 설정되어 있음을 알 수있었습니다. 그러나, 나중의 코드에서 부모를 가져 오려고하면 같은 NSWindow가 nil을 반환합니다. removeChildWindow에 대한 명시 적 호출만으로 육아를 제거 할 수 없다는 것을 알았습니다. 육아를 잘못 설정하고있는 것처럼 여기에 다른 작업이 없다면 말입니다. NSWindow가 부모/자녀 관계를 잃을 수있는 다른 방법이 있습니까?
someFunction(NSWindow* parentWindow) {
NSWindow* wnd = [[NSWindow alloc] initWithContentRect:frame
styleMask:NSBorderlessWindowMask
backing:NSBackingStoreBuffered
defer:NO];
[parentWindow addChildWindow:wnd ordered:NSWindowAbove];
}
이상 :
anotherFunction(NSWindow* window) {
NSWindow* parentWindow = [window parentWindow]; // debugger shows nil
}
은'window' nil입니까? – Willeke
아니요, wnd 이전과 같은 창 – damonkashu
더 많은 정보를 제공해야합니다. parentHandle 또는 다른 객체는 parentWindow를 유지합니까? 귀하가 "나중에"(부모 창은 디버거에 의해 없음으로 표시됨)로 설명하는 지점에서 두 창을 모두 볼 수 있습니까? – elasticthreads