web-dev-qa-db-fra.com

Xcode continue de construire le storyboard après chaque frappe

Mon projet Xcode utilisant un storyboard entré dans un état très étrange récemment: Xcode continue à construire tout le projet et notamment le storyboard après chaque pression de touche. Je n'ai trouvé aucune raison pour ce comportement, ni dans mon projet, en différenciant tous les fichiers intéressants (storyboard et projet), ni dans un paramètre Xcode (peut-être que je ne pouvais pas le trouver?). Inutile de dire que cette "fonctionnalité" rend le travail sur mon projet presque impossible puisque le processeur est constamment occupé à reconstruire le storyboard lorsque je tape un nouveau code. Quelqu'un a vu ça?

141
MrTJ

C'est causé par le IB_DESIGNABLE définitions dans les fichiers d'en-tête source. Cela ne pose probablement problème que si le fichier d’en-tête contenant IB_DESIGNABLE est inclus (même implicitement) dans le fichier source en cours d’édition.

Je n'ai pas trouvé de solution définitive pour désactiver IB_DESIGNABLE et ainsi compiler le storyboard et les fichiers source en continu. J'apprécierais un drapeau Xcode pour le désactiver temporairement. J'ai essayé aussi entourant le IB_DESIGNABLE avec #ifdef macros mais elles sont prises en compte même si le #ifdef est évalué à false. Commenter un à un le IB_DESIGNABLE aide mais ce n'est pas une solution réalisable avec beaucoup de IB_DESIGNABLEs.

Mettre à jour

J'ai enfin trouvé un moyen rapide d'éviter ce comportement ennuyeux. Après avoir ouvert le storyboard dans la fenêtre active, désactivez l'option "Actualiser automatiquement les vues" dans le menu de l'éditeur. Cela arrêtera la mise à jour des vues dans l'éditeur de storyboard qui utilisent votre code personnalisé et accélérera ainsi considérablement votre développement. Lorsque vous avez besoin de la compilation juste-à-temps pour avoir un aperçu visuel de votre code personnalisé, activez cette option à nouveau (il semble que vous deviez également rouvrir votre scénarimage pour le faire fonctionner à nouveau).

enter image description here

Vous souhaiterez peut-être ajouter une liaison de clé à la commande, telle que command-option-control-A, pour facilement activer/désactiver le comportement. Pour ajouter une liaison de clé dans Xcode, appuyez sur commande-virgule pour les préférences, choisissez l'onglet Liaisons de clé, utilisez la barre de recherche pour trouver la commande, puis double-cliquez sur la zone de droite pour ajouter votre frappe souhaitée.

"Laisse tomber" approche

Vous pouvez également désactiver "Actualiser automatiquement les vues" et ne jamais l'activer .

Effectuez une frappe pratique pour "Actualiser toutes les vues" , par exemple, commande-option-shift-R

enter image description here

Pendant que vous travaillez, appuyez simplement sur Commande-Option-Maj-R de temps à autre ou selon vos besoins. Il suffit généralement d'appuyer sur Commande + Option + Maj + R lorsque vous travaillez sur le storyboard.

407
MrTJ

J'ai eu ce problème et la réponse acceptée n'a pas fonctionné pour moi.

Le problème que j’avais, c’est que je garde toujours le storyboard ouvert dans son propre onglet dans XCode afin de pouvoir y accéder rapidement.

La seule façon de résoudre ce problème était de fermer cet onglet ou de sélectionner un autre fichier (comme un fichier de code normal), puis de fermer et de rouvrir XCode. Par la suite, il ne s'agissait plus de reconstruire à chaque frappe.

Soyez averti cependant si vous devez ouvrir le storyboard pour apporter des modifications, ce problème peut parfois réapparaître et je devrai répéter le processus ci-dessus.

Vous ne pouvez pas attendre jusqu'à ce que Apple corrige ce problème car il est très frustrant!]

(ಠ 益 ಠ) 彡 ┻━┻

7
Nick Kirsten