NSWindow - показать новое окно, которое всегда будет оставаться поверх текущего окна - PullRequest
5 голосов
/ 17 июля 2011

Я хочу, чтобы мое NSWindow показывало новые окна, которые всегда будут поверх текущего окна. они НЕ должны быть поверх других окон.

Кроме того, они не должны перемещаться при перемещении исходного окна.

Как я могу это сделать?

Ответы [ 3 ]

5 голосов
/ 18 июля 2011

Используйте метод NSWindow addChildWindow:ordered: или setParentWindow:, чтобы добавить другое окно в качестве дочернего для первого окна. Это окно будет следовать за первым окном вокруг. См. NSWindow Class Reference .

2 голосов
/ 17 июля 2011

Вы можете установить уровень окна в NSFloatingWindowLevel, чтобы он всегда был сверху.
Чтобы предотвратить закрытие окна другими приложениями, вы можете установить его уровень в NSNormalWindowLevel или можете вообще его скрыть.Попробуйте использовать applicationWillResignActive: метод ( NSApplicationDelegate Protocol ), чтобы убрать ваше окно сверху.Чтобы поймать момент, когда вы снова вернете окно, используйте applicationWillBecomeActive: метод.

0 голосов
/ 04 декабря 2014

Это сработало для меня, надеюсь, это будет полезно

[self.window makeKeyAndOrderFront:nil];
[self.window setLevel:NSStatusWindowLevel];
...