Вы говорите:
Я пробовал orderFront, makeKey, makeKeyAndFront, но ничего не помогло.
А потом:
Метод:
- (void)setLevel:(NSInteger)windowLevel
Это не работает, окно все еще идет за моим главным окном при нажатии на значок поиска.
Тогда вы делаете что-то не так.
Во-первых, окно в любом случае не должно автоматически переходить за другое окно. Либо вы (или пользователь) заказываете главное окно спереди, либо вы заказываете другое окно назад. Я предполагаю, что вы не делаете последнее.
Для другого orderFront:
, makeKeyAndOrderFront:
и setLevel:
работают . В частности, setLevel:
помещает окно на всю другую плоскость , поэтому всегда будет находиться перед (или позади, в зависимости от выбранного вами уровня) окнами по умолчанию уровень, независимо от того, что вы делаете.
Я полагаю, что вы не подключили или случайно отключили свой window
выход к окну, что означает, что вы отправляете свои сообщения orderFront:
/ setLevel:
на nil
, что делает ничего такого. Убедитесь, что ваша розетка заполнена в том месте, куда вы отправляете сообщение orderFront:
или setLevel:
, войдя в окно на консоли. Если он говорит «(ноль)» или «0x0» (в зависимости от того, как вы его регистрируете), то ваша розетка содержит nil
; убедитесь, что он подключен к пиру, и что вы уже загрузили пиб / создали экземпляр оконного контроллера.
Все, что сказал, я не согласен с тем, что setLevel:
является правильным решением. Если вы просто хотите, чтобы одно окно оставалось перед другим конкретным окном, а не помещалось в другую плоскость, сделайте его дочерним окном .