Tôi không thể thấy bất kỳ cách nào để sao chép NSView và tạo một đối tượng NSView giống hệt nhau. Tôi thấy số truy cập của google về "sử dụng NSData" nhưng tôi không hiểu điều đó.Sao chép NSView trong ca cao/mục tiêu-c
13
A
Trả lời
24
Để thẳng "sao chép" một NSView, chế độ xem phải triển khai giao thức NSCopying
. Thật không may, NSView thì không.
May mắn thay, nó không thực hiện NSCoding
giao thức, có nghĩa là chúng ta vẫn có thể lặp lại một cái nhìn như:
NSData * archivedView = [NSKeyedArchiver archivedDataWithRootObject:myView];
NSView * myViewCopy = [NSKeyedUnarchiver unarchiveObjectWithData:archivedView];
và thì đấy! Bạn hiện có bản sao của myView
.
Edit: (phiên bản Swift)
let archivedView = NSKeyedArchiver.archivedData(withRootObject: myView)
let myViewCopy = NSKeyedUnarchiver.unarchiveObject(with: archivedView)
(archivedView
là loại Data
, không NSData
)
Các vấn đề liên quan
- 1. Ca cao: Nguồn gốc NSView x ở phía dưới cùng
- 2. Ca cao: Sự kiện không hoạt động trên NSView không kích hoạt
- 3. Sao chép/Sao chép/Sao chép một Hồ bơi Ứng dụng Hiện tại trong IIS 7
- 4. Sao chép NSString không sao chép?
- 5. Hàng sao chép/sao chép Laravel4
- 6. Lỗ trong NSView hoặc NSWindow
- 7. Sao chép/Dán trong JavaScript?
- 8. Sao chép sâu trong C#
- 9. Sao chép NSAttributedString trong UIPasteBoard
- 10. Tắt sao chép trong dojo.dnd
- 11. Ca cao: Có tồn tại NSView với khả năng thay đổi kích thước của người dùng không?
- 12. Cách thông thường để sao chép tệp trong Gradle - sử dụng Sao chép tác vụ hoặc phương pháp sao chép?
- 13. Sao chép/Sao chép Bản đồ Javascript Biến
- 14. Màu đường viền NSView
- 15. Sao chép constructor: sâu sao chép một lớp trừu tượng
- 16. Sao chép bằng hộp thoại sao chép Windows
- 17. Cách sao chép hoặc sao chép một mảng các mảng
- 18. Sao chép máy chủ SQL không sao chép khóa ngoài
- 19. const trong constructor sao chép trong C++
- 20. Tạo NSScrollView Programatically trong một NSView - Cocoa
- 21. Bảng sao chép phpMyAdmin
- 22. Sao chép số lẻ
- 23. sao chép jQuery datepicker
- 24. Implicit constructor sao chép
- 25. Cách sao chép() StringBuilder
- 26. Làm cách nào để sao chép/sao chép một thể hiện của đối tượng trong CoffeeScript?
- 27. Tác vụ Sao chép MSBuild không sao chép tệp lần đầu tiên trong vòng
- 28. Sao chép tệp trong nhật thực sao chép tên tệp (Chuỗi) thay vì tệp vào clipboard
- 29. Làm cách nào để sao chép (sao chép) một tab trong IntelliJ Idea?
- 30. Ant: Conditional Sao chép
Lưu ý rằng nếu bạn phân lớp, bạn sẽ cần phải thực hiện hỗ trợ lưu trữ. Các tài liệu biết tất cả. – bbum
Trong mọi trường hợp mà tôi phân lớp - ngay cả khi tôi không có thêm dữ liệu nhưng chỉ có một vài phương pháp? – Nektarios
Nektarios: http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/MemoryMgmt/Articles/mmImplementCopy.html –