NSApplicationDelegate funktioniert nicht ohne Storyboard

8

Ich versuche eine Mac OS-Anwendung ohne Storyboard in Xcode 8 (stable) auf macOS Sierra zu erstellen. Mein AppDelegate wird jedoch nicht einmal initiiert. Hier ist der Code, den ich habe:

%Vor%

Weder init noch applicationDidFinishLaunching(_ aNotification: Notification) wird aufgerufen. Jede Hilfe würde sehr geschätzt werden.

    
Zoyt 12.10.2016, 20:51
quelle

2 Antworten

11

Sie müssen hier ein paar Dinge tun

  1. Löschen Sie NSMainStoryboardFile key / value aus dem plist
  2. Erstellen Sie eine NSApplication Unterklasse und weisen Sie sie dem Schlüssel Principal Class (NSPrincipalClass) zu.

Der Name muss mit Ihrem Modulnamen vollständig qualifiziert sein.

  1. Sie können Ihren Delegaten manuell in Ihrer NSApplication-Unterklasse instanziieren und ihn der delegate -Eigenschaft zuweisen.

Stellen Sie sicher, dass Sie eine starke Referenz auf Ihr Delegatobjekt haben. Ich habe gerade ein let hier verwendet.

%Vor%

z. B. ein einfacher Delegierter.

%Vor%     
Warren Burton 07.12.2016, 23:12
quelle
0

Falls jemand nach einer Swift-Version sucht (basierend auf der Antwort von @WarrenBurtons).

AppDelegate

%Vor%

NSApplication-Unterklasse

%Vor%

Info.plist-Eintrag

%Vor%

Ich habe auch einen Grund dafür geschaffen, dass ich für neue Xcode / Swift-Versionen auf dem Laufenden bleibe. Ссылка

Bearbeiten: Stellen Sie sicher, dass Main.storeboard / MainMenu.xib gelöscht wird. Andernfalls könnten Sie zwei UI-Debugger im UI-Debugger ausführen.

    
florieger 30.10.2017 12:46
quelle

Tags und Links