Chế độ xem nhiều cột trong MacOS bằng SwiftUI


12

Tôi đã thử nghiệm một chút với SWiftUI và dường như không thể tìm thấy bất kỳ thông tin nào về cách sử dụng SWiftUI để tạo TableView nhiều cột như trong NSTableView. Tất cả các ví dụ tôi đã quản lý để tìm thấy hiển thị một cột dữ liệu. Tài liệu tại Apple thậm chí còn chỉ định rằng cấu trúc Danh sách SwiftUI dành cho hiển thị cột đơn của các hàng dữ liệu. Đây là một cấu trúc dữ liệu khá cơ bản cho các ứng dụng trên MacOS nhưng dường như không có đề cập nào về nó ở bất cứ đâu!

Ai đó có thể làm sáng tỏ về điều này? Tôi cho rằng nó chưa sẵn sàng nhưng vẫn còn.


Điều gì về hoán đổi cột và thay đổi kích thước, tiêu đề, sắp xếp hàng bằng cách nhấp vào nút sắp xếp trong tiêu đề, v.v. Bảng xem MacOS phức tạp hơn nhiều so với chỉ một danh sách đơn giản.
Peter

1
Tại sao câu hỏi này bị hạ thấp? SwiftUI cho macOS thật kinh khủng ... mọi người đều đang làm hướng dẫn cho iOS!
Lupurus

Tôi nghĩ rằng hiện tại nó vẫn cần thiết để sử dụng NSViewRepresentable. Bạn có bất kỳ thông tin mới?
Lupurus

1
Không, không có thông tin mới. Và bạn đã đúng về việc thiếu các ví dụ cho MacOS - gần như không tồn tại.
Peter

Bạn đã tìm ra cách sử dụng một NSTableViewtrong SwiftUI?
Lupurus

Câu trả lời:


1

Bạn có thể tạo HStack và sau đó có một dải phân cách giữa hai VStacks nơi bạn sẽ đặt các cột dữ liệu khác nhau của mình. Nó sẽ trông giống như thế này:

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

Và sau đó chỉ cần lặp lại điều này cho tuy nhiên nhiều cột dữ liệu là cần thiết.


Vâng, nhưng nó sẽ trông giống như bị hack cùng nhau. Không có tiêu đề cột hoặc hoán đổi cột, sắp xếp, v.v. Tốt hơn là sử dụng một cái thực sự trong thời điểm hiện tại và hy vọng rằng một cái gì đó tốt hơn có sẵn sau WWDC năm nay. Tôi đã ngạc nhiên hơn khi hoàn toàn không có một đề cập nào về nó - thực sự khá tốt ở bất cứ đâu.
Peter
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.