Как переместить NSWindow без перемещения дочернего NSWindows - PullRequest
1 голос
/ 05 октября 2011

У меня есть главное окно, которое является центром моего приложения. Для разных функций я открываю дочернее окно для обработки определенных специализированных функций. Я хочу, чтобы все окна двигались независимо, но сейчас, если я переместлю оригинальное центральное окно, все эти дочерние окна будут перемещаться вместе с ним. Как я могу отключить дочерние окна, чтобы они не двигались вместе с родителями?

Ответы [ 2 ]

3 голосов
/ 05 октября 2011

Временно удалите дочерние элементы перед перемещением окна, затем верните их обратно:

- (void)windowWillMove:(NSNotification *)notification;
{
    [window removeChildWindow:child];
}

- (void)windowDidMove:(NSNotification *)notification
{
    if (![window inLiveResize])
            [window addChildWindow:child ordered:NSWindowAbove];
}

Или, если вам не нужен порядок NSWindowAbove, просто не делайте их дочерними в первую очередь :)

0 голосов
/ 28 августа 2013

Другим способом вы можете показать свое дочернее окно, не добавляя его в качестве дочернего окна, но достигая того же поведения на уровне окна:

[self.childWindowController showWindow:self];
[self.childWindowController.window setLevel:NSSubmenuWindowLevel];

Я не уверен, что этот метод правильный и хорошийрешение, но оно работает для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...