/ / Aggiunto NSWindow come figlio di un'altra finestra, ma non persistente - objective-c, cacao

Aggiunto NSWindow come figlio di un'altra finestra, ma non persistente - oggettivo-c, cacao

Il mio obiettivo è posizionare una NSWindow relativa a un'altra NSWindow, in modo tale che quando il genitore viene trascinato in giro, il bambino si sposti con esso.

Quando tocco con il debugger, posso vederela relazione genitore NSWindow viene stabilita correttamente. Tuttavia, in una parte successiva del mio codice, quella stessa NSWindow restituisce nil quando provo a recuperare il genitore. Ho pensato che solo una chiamata esplicita a removeChildWindow avrebbe eliminato la genitorialità, a meno che non ci sia qualcos'altro che sta succedendo qui come se stessi configurando la parenting in modo errato. Ci sono altri modi per un NSWindow di perdere la sua relazione genitore / figlio?

someFunction(NSWindow* parentWindow) {
NSWindow* wnd = [[NSWindow alloc] initWithContentRect:frame
styleMask:NSBorderlessWindowMask
backing:NSBackingStoreBuffered
defer:NO];
[parentWindow addChildWindow:wnd ordered:NSWindowAbove];
}

dopo:

anotherFunction(NSWindow* window) {
NSWindow* parentWindow = [window parentWindow]; // debugger shows nil
}

risposte:

0 per risposta № 1

Sembra che abbia avuto una chiamata per modificare la visibilità della finestra su false:

[wnd setIsVisible:false];

E quando ho provato a leggere ancora il suo genitore, questo finisce per essere nullo. Chi l'avrebbe mai immaginato, questo non sembra essere documentato.