Tôi muốn xây dựng một ứng dụng Cocoa với một danh sách các mục rất giống với danh sách ToDo của Things.app (see the screencast). Câu hỏi đặt ra là liệu tôi nên sử dụngLàm cách nào để triển khai danh sách tùy chỉnh trong Ca cao?
- một TableView,
- một CollectionView hoặc
- một WebView.
Tôi nghĩ rằng nó có thể hoạt động với tất cả chúng, nhưng cái nào phù hợp nhất với các yêu cầu sau đây?
- có một danh sách các mục -> 1 cột & nhiều hàng
- sắp xếp lại bằng cách kéo & thả
- chọn mục đơn & sử dụng các phím cho những hành động như xóa
- mở ra một mục: hàng nên mở rộng để hiển thị thêm các trường nhập
- giao diện tùy chỉnh: góc tròn, bóng, nền dốc
Cho đến nay nghiên cứu của tôi nói rằng TableView có hầu hết các chức năng, nhưng khó tùy chỉnh hơn trong giao diện của nó, CollectionView không kéo thả & (phải không?) Nhưng rất dễ thiết kế và WebView sẽ tốn nhiều công sức để không làm tổn hại đến trải nghiệm người dùng và tôi không thể liên kết trực tiếp mô hình của mình với các trường nhập.
Tôi đang thiếu những ưu điểm và khuyết điểm nào và bạn khuyên bạn nên sử dụng điều gì?
Hm, không mở rộng một hàng trong một NSOutlineView chỉ tiết lộ thêm "subrows"? Tôi muốn thay đổi chiều cao của hàng và đặt nhiều thứ hơn vào nó. Điều này có nghĩa không? – Christian
Vâng. Bạn thực sự có thể sử dụng một khung nhìn bảng, và thực hiện phương thức 'tableView: heightForRow:' delegate mà họ đã thêm hỗ trợ cho Tiger: http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Classes/NSTableView_Class/Reference/ Reference.html # // apple_ref/occ/instm/NSObject/tableView: heightOfRow: –
Bạn cũng sẽ cần một ô tùy chỉnh mà bạn có thể chuyển đổi giữa các trạng thái mở rộng khác nhau. –