SwiftUI: Почему я не могу иметь более одного TextField в одном HStack?

Я хочу, чтобы два редактируемых текстовых поля располагались рядом друг с другом в приложении iOS в HStack. Однако я получаю сообщение об ошибке («Статический член 'ведущий' не может использоваться в экземпляре типа 'HorizontalAlignment'») всякий раз, когда я помещаю это в свой файл представления:

var body: some View {
    VStack(alignment: .leading) {
        ...
        VStack(alignment: .leading) {
            HStack {
                TextField("\(aCountry.populationTitle)", text: $aCountry.populationTitle)
                TextField("\(aCountry.population)", text: $aCountry.population)
        }...

Это также происходит, если у меня есть одно текстовое поле и два или более текстовых элемента в одном HStack.

Возможное решение или причина того, почему это происходит? Если я удалю одно из текстовых полей или имею только одно текстовое поле и один текстовый элемент в одном и том же HStack, приложение будет работать плавно (без ошибок).

Использование xcode11.4.

Спасибо.

[РЕДАКТИРОВАТЬ]

Тело для MasterView.swift:

struct DetailView: View {
@ObservedObject var aCountry: Country
var body: some View {
    VStack(alignment: .leading) {
        Image("\(aCountry.imageName)").resizable().frame(width: 200, height: 200)
        TextField("\(aCountry.name)", text: $aCountry.name)
            .font(.headline)
        TextField("\(aCountry.continent)", text: $aCountry.continent)
            .font(.subheadline)

        VStack(alignment: .leading) {
            HStack {
                TextField("Population:", text: $aCountry.populationTitle)
                TextField("\(aCountry.population)", text: $aCountry.population)
            }
     }}}

person CoderHelp    schedule 15.04.2020    source источник
comment
В TextField просмотрах в HStack нет ничего плохого. Это тот случай, когда компилятор не может определить место ошибки. Не могли бы вы предоставить полное body представление и Country объявление типа?   -  person Asperi    schedule 15.04.2020
comment
у вас может быть более одного TextField в HStack. Покажите нам больше вашего кода. Из данного фрагмента похоже, что вам не хватает}   -  person workingdog    schedule 15.04.2020
comment
Я отредактировал исходный пост с добавлением основного вида и объявления типа страны (в моем кодовом файле все двоеточие, скобки и отступы верны)   -  person CoderHelp    schedule 15.04.2020


Ответы (1)


вы не предоставили класс Country, поэтому я его создал. Следующий тест работает с текстовыми полями в HStack и вне его.

class Country: ObservableObject {
    @Published var name = "countryx"
    @Published var continent = "continentx"
    @Published var populationTitle = "populationTitlex"
    @Published var population = "populationx"
    @Published var imageName = "imageNamex"
}

struct ContentView: View {

@ObservedObject var aCountry: Country

var body: some View {
    VStack(alignment: .leading) {
        // Image("\(aCountry.imageName)").resizable().frame(width: 200, height: 200)
        TextField("\(aCountry.name)", text: $aCountry.name).font(.headline)
        TextField("\(aCountry.continent)", text: $aCountry.continent).font(.subheadline)
        VStack(alignment: .leading) {
            HStack {
                TextField("Population:", text: $aCountry.populationTitle)
                TextField("\(aCountry.population)", text: $aCountry.population)
            }
        }
    }
}
}
person workingdog    schedule 15.04.2020