Я думаю, что, вероятно, есть веские причины, по которым makeKeyAndOrderFront
не является синхронным вызовом, а именно, может быть координация, связанная с несколькими окнами и объектами, о которых NSApplication
необходимо позаботиться, чтобы это произошло, поэтому вынуждает окно кнемедленно стать ключом, вероятно, не поддерживается Какао.Это, однако, не может быть проблемой в зависимости от проблемы, которую вы пытаетесь решить.
Теперь я предполагаю, что некоторые из ваших методов зависят от того, является ли окно ключевым, и в данный момент они не работают должным образом, потому что окно не становится key
сразу.Однако вы можете реализовать протокол NSWindowDelegate
, установить себя в качестве делегата окна и переопределить метод - (void)windowDidBecomeKey:(NSNotification *)notification
, чтобы узнать, когда окно стало ключевым.Это также должно быть глобальное уведомление в случае, если оно работает лучше для вас.
Для получения более подробной информации, ознакомьтесь с Apple Docs на http://developer.apple.com/library/mac/#documentation/cocoa/reference/NSWindowDelegate_Protocol/Reference/Reference.html