Как Swift AppDelegate знает, какой вид показывать? - PullRequest
0 голосов
/ 20 июня 2020

Я новичок в программировании на Xcode и Swift GUI. Когда я запускаю новый проект в Xcode (проект MacOs Game), он создает стартовую программу Hello World. Код AppDelgate.swift по умолчанию показан ниже. И он работает, когда я запускаю его и отображает "Hello World". Я понимаю, что этот код действует как «основная» отправная точка для выполнения кода, хотя мне не удалось найти официальную документацию для атрибута @NSApplicationMain.

Мой вопрос: откуда этот код знает, что просмотреть в файле ViewController.swift? Код AppDelegate.swift в основном пустой, без реального кода. Как узнать, какой ViewController отображать? Откуда он вообще знает, что что-то делать?

import Cocoa

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
    
    
    func applicationDidFinishLaunching(_ aNotification: Notification) {
        // Insert code here to initialize your application
    }
    
    func applicationWillTerminate(_ aNotification: Notification) {
        // Insert code here to tear down your application
    }
    
    
}

Ответы [ 2 ]

1 голос
/ 20 июня 2020

Выберите файл проекта из Project navigator, и вы увидите, что значение Main Interface установлено как Main, что означает, что файл Main.storyboard будет использоваться в качестве основного интерфейса. Вы можете удалить это, и вы обнаружите, что приложение больше не отображает контроллер представления.

Навигатор проекта

Вы можете удалить Main Interface из Project Navigator и заменить contentViewController из AppDelegate в приложении Какао, как это.

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {

    var window: NSWindow?

    func applicationDidFinishLaunching(_ aNotification: Notification) {
        window = NSWindow(contentViewController: ViewController())
        window?.makeKeyAndOrderFront(nil)
    }
}
1 голос
/ 20 июня 2020

Это определяется через Info.plist. Проверьте настройки своей цели, и вы найдете запись под названием «Главный интерфейс», которая указывает на файл раскадровки или пера.

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