Tôi đang trở lại phát triển Cocoa trên Mac sau một thời gian dài làm công việc iPhone. Kinh nghiệm trước đây của tôi với ca cao trên máy Mac vừa được các công cụ ít dinky. Tôi đang tìm cách xây dựng một thứ gì đó nghiêm túc.Kiến trúc ứng dụng ca cao trên Mac OS X
Nhìn vào một ứng dụng Cocoa hiện đại như iPhoto (hoặc Mail hoặc Things hoặc ....) nhiều ứng dụng sử dụng phương pháp tiếp cận dựa trên nguồn-cửa sổ đơn. Tôi đang cố gắng để quấn đầu của tôi xung quanh đó là tốt nhất tôi có thể bởi vì nó dường như cung cấp một kinh nghiệm tốt. Tuy nhiên, tôi đang gặp một chút rắc rối. Đây là cách tôi nghĩ rằng nó sẽ giống, nhưng tôi đang tự hỏi như thế nào người khác đang làm việc đó, và những gì thực sự là cách tốt nhất:
Starting Point của ứng dụng là một đối tượng appdelegate đó, sau khi tung ra, tạo ra một cửa sổ [Bộ điều khiển?] Từ một ngòi bút, cùng với việc thiết lập dữ liệu của nó (từ, nói CoreData)
WindowController tải một cửa sổ về cơ bản chỉ có một NSSplitView trong đó.
Phía bên trái của chế độ xem chia nhỏ có NSTableView hoặc NSOutlineView được đặt để có kiểu Danh sách nguồn.
Phía bên phải có nội dung chính của ứng dụng, tùy thuộc vào mục nào của chế độ xem bảng được chọn.
tôi sẽ giả định ở đâu đó (ở đâu?) Có NSViewControllers quản lý cho các quan điểm khác nhau sẽ xuất hiện ở phía bên phải (suy nghĩ như thế nào iPhoto có Tất cả các hình ảnh, sự kiện, khuôn mặt, Places, vv và tôi tưởng tượng tất cả chúng có thể xuất hiện ở các ngòi khác nhau ... điều này có đúng không?).
Bộ điều khiển chế độ xem đó có thể bị ràng buộc vào danh sách nguồn ở bên trái .. cách hoạt động (danh sách nguồn được hỗ trợ bởi NSArrayController của NSViewControllers có thể?).
Dù sao, đó là những suy nghĩ của tôi, tôi hoàn toàn không có cơ sở hay ...? Tôi đã xem xét trên web, tìm thấy bài viết này here, và tôi đã nhìn vào một số mã nguồn của Apple nhưng tôi không thể có vẻ quấn quanh đầu của tôi. Mọi hướng dẫn đều được hoan nghênh.
Tôi chắc chắn đã suy nghĩ rất nhiều, và tôi nghĩ nó hoạt động tốt cho hoàn cảnh của tôi. Tôi nghĩ rằng mỗi góc nhìn khác nhau sẽ đủ khác nhau để đảm bảo nib của riêng mình, nhưng một lần nữa tôi không chắc chắn. Khi làm công việc iPhone, tôi hiếm khi sử dụng InterfaceBuilder, tuy nhiên với Bindings được tích hợp rất tốt với nó, tôi nghĩ đã đến lúc tôi bắt đầu sử dụng nó nhiều hơn. Tôi cũng đã đọc các bài báo của Cathy, nhưng nó lại là một sự lôi kéo khác theo một hướng khác, do đó sự nhầm lẫn của tôi về cách mọi thứ hoạt động. – jbrennan
Câu hỏi thực sự không khác biệt về quan điểm, nhưng những gì bạn đang sử dụng chúng cho — đối tượng mô hình nào bạn sẽ đặt vào chúng. Nếu hai chế độ xem hiển thị các loại nội dung khác nhau, chúng phải là các chế độ xem khác nhau, mỗi chế độ xem có nib riêng. –
Đúng, chúng sẽ là những ngòi ngách khác nhau bởi vì chúng hiển thị nhiều loại khác nhau. Làm thế nào để chuyển mạch ngòi hoạt động? Khi tôi chọn một hàng khác trong Sourcelist của tôi, làm thế nào mà kích hoạt một ngòi mới được nạp vào? (Ngoài ra, có nên tải một ViewController mới, hoặc chỉ cần hoán đổi chế độ xem ở phía bên tay phải không?) – jbrennan