0
votes

Construire swiftui "bonjour monde" sur macos

SWIFTUI "Hello World" fonctionne sur iOS, mais pas MacOS.

Essayer de construire un exemple simple "Helloo World" EXEMPLE SWIFTUI pour voir comment cela fonctionne sur Mac, mais je reçois une application d'écran noir vide. p>

J'utilise Xcode 11 La cible MacOS est vérifiée Version MacOS 10.15 Beta (19A471T) P>

import SwiftUI

struct ContentView : View {
    var body: some View {
        VStack {
            Toggle(isOn: /*@START_MENU_TOKEN@*/.constant(true)/*@END_MENU_TOKEN@*/) {
                Text(/*@START_MENU_TOKEN@*/"Toggle"/*@END_MENU_TOKEN@*/)
            }
            Stepper(value: /*@START_MENU_TOKEN@*/.constant(4)/*@END_MENU_TOKEN@*/, in: /*@START_MENU_TOKEN@*/1...10/*@END_MENU_TOKEN@*/) {
                /*@START_MENU_TOKEN@*/Text("Stepper")/*@END_MENU_TOKEN@*/
            }
            Text("Hello World")
        }
    }
}

#if DEBUG
struct ContentView_Previews : PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}
#endif


1 commentaires

Pourriez-vous réparer le code source? Il y a du gibberish dedans


5 Réponses :


4
votes

Ceci est un problème connu, mentionné dans Notes de version XCode 11 Beta Living : < / p>

xcode 11 bêta ne supporte pas de travailler avec SWIFTUI dans un projet Configuré pour utiliser Uikit pour Mac.

Donc, la seule option que nous avons est d'attendre la prochaine version Xcode 11 Beta.


mise à jour: cela fonctionne avec Xcode 11.0 Beta 2.


4 commentaires

Merci beaucoup pour la réponse! Je me demandais moi-même aussi.


Merci pour la clarification Mo Reza! Avez-vous essayé de prévisualiser Swiftui MacOS dans Xcode Aperçu? J'ai essayé de suivre le code mais je n'ai pas aussi travaillé: #if debug structure contentview_previews: PreviewProvider {static var aperçus: Quelques affichages {Groupe {ContentView () .Previewevice ("Mac") ContentView () .padievice ("iPad Pro (12.9- pouces) (3ème génération) "


@Alexandrelordelo L'aperçu iPad fonctionne bien, mais le Mac n'apparaîtra pas. Peut-être qu'une autre chaîne est nécessaire pour cela ou il n'est pas encore pris en charge dans l'aperçu!


@Alexandrelordelo est l'aperçu aussi corrigé?



0
votes

S'il s'agit d'un problème connu que Xcode 11 Beta 1 est absorbant le support manquant, vous pouvez l'activer en modifiant la configuration de la scène dans votre scène SceneElegate WillConnectTo code> Méthode:

#if targetEnvironment(UIKitForMac)
    let windowScene = UIWindowScene(session: session, connectionOptions: connectionOptions)
    let window = UIWindow(windowScene: windowScene)
#else
    let window = UIWindow(frame: UIScreen.main.bounds)
#endif
    window.rootViewController = UIHostingController(rootView:
      ContentView()
        .environmentObject(TimersStore.shared)
        .environmentObject(SettingsStore.shared)
    )


0 commentaires

1
votes

C'est maintenant OK avec Xcode 11 Beta 2 :

Xcode 11 Beta prend en charge le développement avec swiftui.

Notez que l'application Skeleton créée par Beta 1 (créée à partir du nouveau menu du projet) ne fonctionnera pas. Vous devez utiliser celui créé par Beta 2.


0 commentaires

1
votes

Il fonctionne bien sur Xcode 11 Beta 2 et MacOS 10.15 beta2.

 Entrez la description de l'image ici


3 commentaires

Je n'ai pas encore été capable de tester l'aperçu de Mac. Connaissez-vous le code pour cela?


@Alexandrelordelo xcode 11 beta 2 & macos 10.15 beta2, il suffit


Merci! Je suppose que vous utilisez Mac comme objectif de construction? Que diriez-vous de définir le code de débogage afin que vous puissiez prévisualiser à la fois iOS et MacOS?



0
votes

Ceci est maintenant super facile à SWIFTUI:

import SwiftUI

struct ContentView: View {
    #if targetEnvironment(macCatalyst)
    var body: some View {
        Text("Hello, Mac!")
    }
    #else
    var body: some View {
        Text("Hello, iOS!")
    }
    #endif
}


0 commentaires