#macos #swiftui
#macos #swiftui
Вопрос:
У меня есть это представление для приложения строки меню Mac, которое создает изображение ниже.
VStack {
Text("Title of App").font(.title).frame(alignment: .center)
List(results, id: .title) { item in
VStack(alignment: .leading) {
Text(item.title)
.font(.headline)
Text(item.description)
}
}
Я хочу сделать так, чтобы текст, содержащий item.description, состоял из нескольких строк, которые можно выполнить с помощью lineLimit
но когда я применяю его к элементу, он остается точно таким же. Я также попытался использовать .fixedSize(horizontal: false, vertical: true)
сначала в item.description, а затем в VStack, к которому он принадлежит, что привело к следующему результату.
Я использую macOS 10.5.3
с XCode версии 11.6
Ответ №1:
Вот решение (протестировано с Xcode 11.4 / macOS 10.15.6)
VStack {
Text("Title of App").font(.title).frame(alignment: .center)
// use geometry reader to fix list content width
GeometryReader { gp in
List(results, id: .title) { item in
VStack(alignment: .leading) {
Text(item.title)
.font(.headline)
Text(item.description)
}
.frame(width: gp.size.width) // << here !!
}
}
}