Подтвердить что ты не робот

Как перенести NSWindow на передний план и в текущее пространство?

Я использую этот код, чтобы открыть окно:

[self.window makeKeyAndOrderFront:self];
[self.window setOrderedIndex:0];

Но часто это будет под другими окнами или отображаться на другом рабочем столе Space, в котором я в последний раз его открываю. Как заставить его всегда отображаться "перед" пользователю?

Update Я нашел ответ от ранее заданного вопроса; чтобы окно отображалось вверху других окон: [NSApp activateIgnoringOtherApps: YES];

Но как перенести приложение в текущее пространство пользователя?

4b9b3361

Ответ 1

Чтобы перенести приложение на передний план:

[NSApp activateIgnoringOtherApps:YES];

Swift:

NSApp.activateIgnoringOtherApps(true)

Swift 3:

NSApp.activate(ignoringOtherApps: true)

Ответ 2

Возможно, вы хотите:

  [self.window setCollectionBehavior: NSWindowCollectionBehaviorCanJoinAllSpaces];

Экспериментируйте с другими типами поведения в коллекции... Я обнаружил, что NSWindowCollectionBehaviorMoveToActiveSpace был немного ошибкой в ​​10.5, но теперь может быть лучше.

Ответ 3

Но как перенести приложение в текущее пространство пользователя?

Нет. Пространства содержат окна, а не приложения. (Поэтому свойство collectionBehavior находится в NSWindow, а не в NSApplication.)

Ответ 4

Синтаксис, похоже, немного отличается от Swift 2:

NSApplication.sharedApplication().activateIgnoringOtherApps(true)

Ответ 5

Swift 3.0

NSApp.activate(игнорированиеOtherApps: true)