Многостолбцовые таблицы в MacOS с использованием SwiftUI


12

Я немного экспериментировал с SWiftUI и, похоже, не могу найти никакой информации о том, как использовать SWiftUI для создания многостолбцового TableView, как в NSTableView. Все примеры, которые мне удалось найти, показывают один столбец данных. В документации Apple даже указывается, что структура списка SwiftUI предназначена для отображения столбцов строк данных в одном столбце. Это довольно фундаментальная структура данных для приложений на MacOS, но нигде не упоминается об этом!

Может кто-то пролить свет на это? Я предполагаю, что это просто еще не готово, но все же ...


А как насчет замены и изменения размера столбцов, заголовков, сортировки строк, нажав на кнопку сортировки в заголовках и т. Д. Табличные представления MacOS намного сложнее, чем простой список.
Питер

1
Почему этот вопрос был отвергнут? SwiftUI для macOS ужасен ... все делают уроки для iOS!
Lupurus

Я думаю, что на данный момент все еще необходимо использовать NSViewRepresentable. У вас есть какая-нибудь новая информация?
Lupurus

1
Нет, никакой новой информации. И вы правы насчет отсутствия примеров для MacOS - их практически нет.
Питер

Вы узнали, как использовать NSTableViewв SwiftUI?
Lupurus

Ответы:


1

Вы можете создать HStack, а затем иметь разделитель между двумя VStacks, в который вы поместите свои различные столбцы данных. Это будет выглядеть примерно так:

List {
 HStack{
   VStack{
    //Column 1 Data
  }
   }
  Divider()
   VStack{
     //Column 2 Data
   }
}

А затем просто повторите это для скольких столбцов данных необходимо.


Ну да, но это выглядело бы и чувствовало себя довольно взломанным вместе. Никаких заголовков столбцов или замены столбцов, сортировки и т. Д. Лучше использовать реальный в настоящее время и надеяться, что что-то лучшее будет доступно после WWDC в этом году. Я был более удивлен полным отсутствием даже упоминания об этом - довольно хорошо где-нибудь на самом деле.
Петр
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.