Моя цель - расположить 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
}
- «окно» nil? – Willeke
нет, это то же окно, что и wnd ранее – damonkashu
Вам необходимо предоставить дополнительную информацию. Поддерживает ли parentHandle или какой-либо другой объект parentWindow? Являются ли оба окна видимыми в точке, которую вы описываете как «позже» (родительское окно отображается как ноль отладчиком)? – elasticthreads