2012-03-12 31 views
20

Tôi muốn biết cách tạo tiện ích con/điều khiển tùy chỉnh trong Cocoa. Không phải là hướng dẫn đầy đủ, nhưng một số hướng dẫn về những gì cần bắt đầu xem xét. Tôi đang bối rối bởi quan điểm tùy chỉnh, Core Animation, vv Tôi cảm thấy bị mất.Tiện ích/điều khiển tùy chỉnh cacao OSX

Tôi thấy rất nhiều các điều khiển tìm kiếm mát mẻ, giống như trong Reeder App, hoặc Sparrow vv Ví dụ:

Sparrow

Phía bên trái là một menu thu lại được bao gồm hình ảnh động vv Làm thế nào tôi có thể đạt được một cái gì đó tương tự? Tôi đã nghĩ đến việc sử dụng một WebView + HTML + JavaScript, nhưng điều đó dường như không phải là một giải pháp tối ưu.

+1

Đây là một câu hỏi rất rộng - có thể bạn muốn chỉnh sửa nó để làm cho nó cụ thể hơn. Các câu hỏi cụ thể có xu hướng hoạt động tốt nhất trên các SO - mơ hồ có khả năng được đóng lại là 'không mang tính xây dựng' hoặc 'không phải là một câu hỏi thực tế'. – Caleb

Trả lời

24

Điều khiển là chế độ xem, do đó, nếu chế độ xem tùy chỉnh gây nhầm lẫn cho bạn, bạn sẽ cần phải tìm hiểu điều đó trước khi chuyển sang các điều khiển tùy chỉnh. Mặc dù bạn thực sự nên đọc toàn bộ View Programming Guide, phần được gọi là Creating a Custom View sẽ giúp bạn bắt đầu tạo chế độ xem của riêng mình. Hãy thử tạo chế độ xem đơn giản vẽ vòng tròn, ví dụ hoặc thời gian.

Khi bạn đã có số lượt xem, hãy chuyển sang điều khiển tùy chỉnh. Hầu hết các điều khiển hoạt động về cùng một cách. Người dùng chạm vào chúng và điều khiển phản hồi bằng cách: a) theo dõi đầu vào của người dùng, b) thay đổi giá trị của nó, c) gửi thông điệp hành động đến mục tiêu của nó và d) cung cấp cho người dùng một số phản hồi bằng cách vẽ lại chính nó. Để bắt đầu, trước tiên hãy đảm bảo rằng bạn biết cách sử dụng các điều khiển. Đọc Control and Cell Programming Topics sẽ giúp ích và phần có tiêu đề là Subclassing NSControl bao gồm (rõ ràng) tạo các lớp con của riêng bạn.

Ví dụ bạn đã cung cấp khá rõ ràng là Mail.app của Apple. Khung nhìn ở phía bên trái của cửa sổ có thể là một thể hiện của NSOutlineView, hoặc nó có thể là một lớp tùy chỉnh. Dù bằng cách nào, NSOutlineView sẽ là một điểm khởi đầu tốt nếu bạn muốn sao chép chức năng đó. NSOutlineView là một lớp con của NSTableView, mà lần lượt là một phân lớp của NSControl, mà lần lượt là một phân lớp của NSView. Đọc Outline View Programming Topics để được trợ giúp bắt đầu - các bảng và phác thảo cực kỳ hữu ích, nhưng cũng phức tạp hơn khi sử dụng so với các nút điều khiển cơ bản như các nút và trường văn bản.

+1

Cảm ơn Caleb, có vẻ như là một điểm khởi đầu tốt. –

+2

Điều này thực sự tốt đẹp gửi lên các điều kiện tiên quyết mà nói chung không rõ ràng trong ca cao. Làm tốt – uchuugaka

4

Tôi biết nó chỉ là một phần của giao diện người dùng, nhưng gần đây tôi đã mã hóa một cái gì đó tương tự như thanh bên. Nếu bạn xem xét mã nguồn, nó có thể cung cấp cho bạn một số trợ giúp về việc học cách sử dụng các điều khiển và các ô tùy chỉnh.

Bạn có thể kiểm tra xem nó ra trên Github:
https://github.com/iluuu1994/ITSidebar

Các vấn đề liên quan