Строка меню для NSDocument не отображается - PullRequest
0 голосов
/ 15 марта 2020

Я перенес раскадровку в другой проект, который использует xibs (да, цель развертывания приложения - 10,9). Эта раскадровка подключена к подклассу NSDocument (доступен только в 10.10+), который, кажется, работает очень хорошо, как и ожидалось ... но единственная проблема - это главное меню, которое появляется, только когда документ окна идет позади других windows (например, Finder). те), а затем я положил его обратно впереди. У меня вопрос: как я могу обеспечить подключение главного меню к моему документу?

  override func validateMenuItem(_ menuItem: NSMenuItem) -> Bool {
    Swift.print("validateMenuItem")
    return super.validateMenuItem(menuItem)
  }

  override func makeWindowControllers() {
    let wc = DocumentWC.loadFromNib()

    self.addWindowController(wc!)
  }

1 Ответ

0 голосов
/ 15 марта 2020

Не уверен, что является причиной проблемы (проект огромен), и, вероятно, вы можете назвать это патчем вместо исправления:

override func viewDidAppear() {
  super.viewDidAppear()
  if !self.menufixed {
    self.menufixed = true // just to call it once 
    let win = self.view.window
    win?.resignMain()
    win?.becomeMain()
    win?.orderFrontRegardless()
    win?.resignKey()
    win?.becomeKey()
    win?.orderFrontRegardless()
    NSApp.activate(ignoringOtherApps: true)
  }
}

PS добавлен в контроллер представления, когда вид и окно появляются.

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