web-dev-qa-db-fra.com

Xcode 11: Canvas ne s'affiche pas

J'essaie de faire fonctionner la nouvelle fonctionnalité Canvas à partir de Xcode 11, mais le Canvas n'apparaîtra pas. Qu'est-ce que je fais mal?

Je viens de créer un nouveau projet par défaut (application à vue unique), je l'ai compilé et j'ai activé 'Editeur> Editeur et Canvas'. Je peux accéder à chaque fichier du projet, rien ne s'affiche.

Que faut-il faire d'autre?

36
stk

Vous devez être sur Catalina version macOS (10.15), comme indiqué dans tutoriel officiel

Soyez averti: Catalina ne prend pas en charge les applications 32 bits, certaines anciennes applications cesseront de fonctionner après la mise à jour.

59

vous pouvez toujours voir la vue en direct (sans Catalina installé) avec les aires de jeux. en utilisant UIHostingController.

import UIKit
import SwiftUI
import PlaygroundSupport



struct ContentView : View {
    var body: some View {

        Text("Hello World")
            .color(Color.blue)
    }
}

// Present the view controller in the Live View window
PlaygroundPage.current.liveView = UIHostingController.init(rootView: ContentView())

enter image description here

21
Akash Soni

Pour ajouter à l'autre réponse, selon le tutoriel officiel d'Apple :

Pour prévisualiser et interagir avec les vues du canevas dans Xcode, assurez-vous que votre Mac exécute macOS 10.15 beta.

Malheureusement, je ne peux pas l'exécuter maintenant car la version bêta vient de sortir et je n'ai pas de Mac de rechange!

16
Simon

L'aperçu ne fonctionne que sur MacOS 10.15 Beta

Vous devez appuyer sur l'éditeur et l'option Canvas dans Xcode 11.0-Beta, vous pouvez également appuyer sur Editor -> Editor and Canvas from top options

Captures d'écran jointes pour la réfraction . Image

image 2

7
CrazyPro007

Mettez à jour Mac OS version 10.15 ou supérieure. Mettez à jour Xcode 11 ou une version supérieure. Après cela, cliquez sur Editeur> Canevas pour l'aperçu du code.

Bonus: Si vous souhaitez voir l'aperçu du code à gauche, vous pouvez modifier la mise en page à partir de l'icône de menu> Mise en page> Toile droite. (J'ai partagé une capture d'écran)

Bonus info screenshot

@canerkaseler

6
canerkaseler

Cela pourrait être l'effet si vous avez mis à niveau Xcode vers une version bêta supérieure et avez reçu le message d'erreur suivant au cours du processus:

Le chargement d'un plug-in a échoué

Le plug-in "com.Apple.dt.UVKit" sur le chemin "/Applications/Xcode-beta.appDownloads/Xcode-beta.app/Contents/PlugIns/UVKit.framework" n'a pas pu être chargé. Le plug-in ou l'un de ses plug-ins prérequis peut être manquant ou endommagé. Le plug-in ou l'un de ses plug-ins prérequis peut être manquant ou endommagé et doit être réinstallé.

La solution semble être de mettre à niveau la version bêta de Catalina au même niveau. Voici le lien vers Apple Téléchargements de logiciels bêta .

2
turingtested

vous devez installer macOS au moins la version (10.15 ou supérieure)

2
Yodagama

En plus d'exécuter MacOS Catalina [beta], il semble que vous ayez besoin d'avoir outils de ligne de commande installé sinon il échoue et "suspend" le canevas (cela s'est produit avec Xcode 11 Beta 2). Pour les installer, exécutez:

xcode-select --install
1
Pierz

Pour prévisualiser et interagir avec les vues du canevas dans Xcode, assurez-vous que votre Mac fonctionne MacOS 10.15 beta .

Les outils de développement SwiftUI ne sont disponibles que lors de l'exécution sur macOS 10.15 beta.

https://developer.Apple.com/tutorials/swiftui/creating-and-combining-views

1
casillas

Frustré par ce que Xcode offre pour SwiftUI canvas (et comment il ne vous communique pas que vous devez mettre à niveau vers Catalina pour que cette fonctionnalité soit disponible), j'ai décidé de créer mon propre outil: QDesigner. Il s'agit d'une application iPad où vous pouvez simplement faire glisser et déposer des commandes SwiftUI sur le canevas de l'iPhone, les personnaliser en quelques tapotements et générer du code SwiftUI d'un simple tapotement. Aucun Xcode requis .

La première version bêta de QDesigner est disponible via TestFlight:
https://testflight.Apple.com/join/aSXW5tVp

Il y a aussi un compagnon QDesigner Client application pour iPhone, qui peut être connectée avec QDesigner exécutée sur iPad, pour voir votre conception d'interface utilisateur sur un appareil cible, mise à jour en temps réel:
https://testflight.Apple.com/join/DQv0DBJ

J'espère que cela sera utile pour au moins certains d'entre vous! Faites-moi savoir ce que vous pensez, il y a bien sûr beaucoup de travail à faire pour le rendre pleinement fonctionnel, mais la première version bêta est déjà bénéfique pour une utilisation de base de SwiftUI.

Voir les vidéos de démonstration de QDesigner et en savoir plus en visitant le site Web:
https://Q-Mobile.IT/Q-Designer

QDesigner1

QDesigner2

QDesigner3

1
Karol Kulesza

Copiez le contenu du fichier Swift,


Déplacer le fichier dans la corbeille


Créez à nouveau le fichier Swift


Collez et exécutez votre code




1
C Williams

Quelques listes de contrôle importantes, veuillez les vérifier une par une. Si tout cela est fait, vous pouvez facilement obtenir l'option "Editeur et canevas".

  1. Votre version MacOS est égale ou supérieure à 10.15

  2. Vous utilisez au moins Xcode 11 Beta ou une version ultérieure. Si vous avez Xcode 11 mais que votre MacOS est en dessous de 10.15, vous ne pourrez pas voir l'option.

  3. Exécutez les commandes du terminal:

Sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

puis

Sudo xcodebuild -license

  1. Si la liste de contrôle 1 et 2 est terminée, accédez à l'option Préférences et sélectionnez la ligne de commande Outils. Préférences -> Emplacements et affectation des outils de ligne de commande à Xcode 11/Beta.

La plupart du temps, l'option 4 est le problème.

1
Jamshed Alam

L'aperçu du canevas ne fonctionne qu'après la mise à jour de MacOS 10.14 à 10.15

Nous avons la version bêta de Mac OS Catalina (10.15)

Mettez à niveau votre système et cela fonctionne. :)

Vérifiez ce lien .

1
Anuj J

assurez-vous également que cette fonction est appelée votre classe SwiftUI

struct ContentView_Previews: PreviewProvider {
static var previews: some View {
    ContentView() //this is you struct UI
}

}

0
Vikesh Prasad