Xcode 11: холст не появляется
Я пытаюсь запустить новую функцию Canvas из Xcode 11, но Canvas не появится. Что я делаю неправильно?
Я только что создал новый проект по умолчанию (приложение с одним представлением), скомпилировал его и активировал "Редактор> Редактор и холст". Я могу перейти к каждому файлу в проекте, ничего не появляется.
Что еще нужно сделать?
20 ответов
Вы должны быть на MacOS версии Catalina (10.15), как указано в официальном руководстве
Будьте осторожны: Catalina не поддерживает 32-битные приложения, некоторые старые приложения перестают работать после обновления.
Вы все еще можете увидеть вид в реальном времени (без установленной Catalina) с игровыми площадками. с помощью 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())
Обновите Mac OS версии 10.15 или выше. Обновите Xcode 11 или более позднюю версию. После этого нажмите Editor > Canvas для предварительного просмотра кода.
Бонус: если вы хотите увидеть предварительный просмотр кода слева, вы можете изменить макет, выбрав Значок меню> Макет> Холст справа. (Я поделился скриншотом)
@canerkaseler
I tried all these steps, but then realized I did not have my
PreviewProvider
set up in my file. Without this, the preview won't show up.
Make sure you have it set up like this:
struct YourView_Previews: PreviewProvider {
static var previews: some View {
YourView()
}
}
Then you can follow the advice of the other answers in this thread and your canvas window should pop right up.
Для дальнейшего добавления к другому ответу, в соответствии с официальным руководством от Apple:
Для предварительного просмотра и взаимодействия с представлениями из Canvas в Xcode убедитесь, что на вашем Mac установлена MacOS 10.15 beta.
К сожалению, я не могу запустить его прямо сейчас, так как бета-версия была только что выпущена, и у меня нет запасного Mac!
Предварительный просмотр работает только на MacOS 10.15 Beta
Вам нужно нажать на Editor и Canvas Option в Xcode 11.0-Beta, в качестве альтернативы вы можете нажать на Editor -> Editor и Canvas из верхних опций
Прикрепленные скриншоты для справки.
Скопируйте содержимое быстрого файла,
Переместите файл в корзину
Создайте снова быстрый файл
Вставьте и запустите свой код
Также убедитесь, что эта функция вызывается в вашем файле SwiftUI (за пределами фактического View
структура).
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView() // Initialize your struct
}
}
Если вы переместите файл swiftUI в новую папку, холст не появится, и лучшим решением будет скопировать весь код в файле, затем удалить файл в корзину, затем создать новый файл и вставить свой код
Шаги:
скопировать код файла
удалить файл
создать новый файл с тем же именем
вставить код в новый файл
Это могло произойти, если вы обновили Xcode до более высокой бета-версии и в процессе получили следующее сообщение об ошибке:
Не удалось загрузить плагин
Подключаемый модуль com.apple.dt.UVKit по пути "/Applications/Xcode-beta.appDownloads/Xcode-beta.app/Contents/PlugIns/UVKit.framework" не может быть загружен. Подключаемый модуль или один из необходимых подключаемых модулей может отсутствовать или поврежден. Подключаемый модуль или один из необходимых подключаемых модулей может отсутствовать или поврежден, и может потребоваться переустановка.
Решение, похоже, состоит в том, чтобы обновить бета-версию Catalina до того же уровня. Вот ссылка на загрузку бета-версии программного обеспечения Apple.
Вам необходимо установить macOS версии не ниже (10.15 или выше)
Помимо запуска MacOS Catalina [beta] кажется, что вам нужно установить инструменты командной строки, в противном случае он не работает и "приостанавливает" холст (это произошло с Xcode 11 Beta 2). Чтобы установить их, запустите:
xcode-select --install
Для предварительного просмотра и взаимодействия с представлениями из Canvas в Xcode убедитесь, что на вашем Mac установлена MacOS 10.15 beta.
Инструменты для разработки SwiftUI доступны только при запуске на бета-версии macOS 10.15.
https://developer.apple.com/tutorials/swiftui/creating-and-combining-views
Предварительный просмотр холста работает только после обновления MacOS 10.14 до 10.15
У нас есть Mac OS Catalina Beta версия (10.15)
Обновите свою систему, и она работает.:)
Разочарован тем, что предлагает Xcode для SwiftUI
canvas (и как он не сообщает вам, что вам нужно перейти на Catalina, чтобы эта функция была доступна), я решил создать свой собственный инструмент:QDesigner
. Это приложение для iPad, в котором вы можете просто перетаскиватьSwiftUI
элементы управления на холсте iPhone, настройте их несколькими нажатиями и создайте SwiftUI
код одним нажатием. Xcode не требуется.
Первая бета-версия QDesigner
доступно через TestFlight:
https://testflight.apple.com/join/aSXW5tVp
Также есть товарищ QDesigner Client
приложение для iPhone, которое можно подключить к QDesigner
работает на iPad, чтобы увидеть ваш дизайн пользовательского интерфейса на целевом устройстве, обновленный в режиме реального времени:
https://testflight.apple.com/join/DQv0DBJU
Надеюсь, это будет полезно по крайней мере для некоторых из вас! Дайте мне знать, что вы думаете, конечно, впереди много работы, чтобы сделать его полностью функциональным, но первая бета уже полезна для базовыхSwiftUI
Применение.
Смотрите демонстрационные видео QDesigner
и узнайте больше, посетив веб-сайт:
https://q-mobile.it/Q-Designer
Некоторые важные контрольные списки, пожалуйста, проверяйте по очереди. Если все это сделано, вы легко можете получить опцию "Редактор и холст".
Ваша версия MacOS равна или выше 10.15
Вы используете как минимум Xcode 11 Beta или новее. Если у вас есть Xcode 11, но ваша MacOS ниже 10.15, вы не сможете увидеть эту опцию.
Выполните команды из Терминала:
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
а потом
sudo xcodebuild -license
- Если контрольные списки 1 и 2 выполнены, перейдите к параметру "Настройки" и выберите "Инструменты командной строки". Настройки -> Расположение и назначение инструментов командной строки для Xcode 11/Beta.
В большинстве случаев проблема заключается в варианте 4.
Перейдите в редактор Xcode и под ним нажмите «Редактор и холст».
Столкнулся с той же проблемой, все обновилось. Получил работу, отключив покрытие кода для всех целей :)
Если вы только начинаете использовать холст, сначала откройте ContentView, тогда появится холст, не начинайте с разных файлов, таких как ваши модели или темы.