2016-06-13 5 views
1

У меня есть существующий .xib, который должен отображаться в качестве главной страницы в приложении Xamarin.Mac. Если я установил «Основной интерфейс» в качестве существующего .xib, он отобразится, но это не будет сделано к моменту, когда будет вызван мой переопределение DidFinishLaunching. Здесь я ожидаю некоторую инициализацию, но указанные множители имеют нулевое значение.Xamarin.Mac - AppDelegate DidFinishLaunching - Является ли «Основной интерфейс», указанный в Info.plist, уже предполагаемым для загрузки?

Я новичок в Xamarin, и я пытаюсь выяснить, нужно ли мне переопределить другой вызов, который позволяет мне знать, что главная страница загружена или если проблема находится в другом месте.

Я видел, что NSWindowController имеет переопределение WindowDidLoad, но если я установлю главный интерфейс в info.plist, как он узнает, что такое ViewController для этого представления, чтобы вызвать переопределение WindowDidLoad?

Я думаю, что мне, вероятно, нужно создать главное окно вручную в DidFinishLaunching, но я не могу найти никакой документации о том, как создать главное окно через .xib. Существует документация о том, как получить раскадровку из наконечника, но я ничего не вижу при загрузке .xib. Если кто-то может найти хорошую ссылку о том, как инициализировать главное окно (со всеми включенными сантехникой) в приложении Xamarin.Mac, этого может быть достаточно.

Заранее благодарю вас за ваше время.

ответ

1

Цепь событий примерно:

  • Main вызывает NSApplication.Main
  • Читает info.plist, чтобы определить, что XIb/раскадровку для загрузки.
  • Раскадровка загружена и завышена. Контроллер представления имеет собственный класс, который указывает на «ViewController»
  • Ваш контроллер ViewController развернут и вызывается WindowDidLoad.
  • DidFinishLaunching - это не то, что вы ищете.

Могу ли я предложить взглянуть на документацию в вопросе, чтобы лучше понять полного процесса:

https://developer.xamarin.com/guides/mac/getting_started/hello,_mac/#Anatomy_of_a_Xamarin.Mac_Application