No veo ninguna forma de copiar un NSView y crear un objeto NSView idéntico. Veo éxitos de google sobre "usar un NSData" pero no entiendo eso.Copie NSView en cocoa/objective-c
13
A
Respuesta
24
Para "copiar" directamente un NSView, la vista tiene que implementar el protocolo NSCopying
. Desafortunadamente, NSView no lo hace.
Afortunadamente, no implementar el protocolo NSCoding
, lo que significa que todavía podemos duplicar una vista como:
NSData * archivedView = [NSKeyedArchiver archivedDataWithRootObject:myView];
NSView * myViewCopy = [NSKeyedUnarchiver unarchiveObjectWithData:archivedView];
y listo! Ahora tiene un duplicado de myView
.
Editar: (versión Swift)
let archivedView = NSKeyedArchiver.archivedData(withRootObject: myView)
let myViewCopy = NSKeyedUnarchiver.unarchiveObject(with: archivedView)
(archivedView
es de tipo Data
, no NSData
)
Cuestiones relacionadas
- 1. Cómo bloquear eventos NSView en otro NSView?
- 2. Inhabilitar clics en un NSView
- 3. Orificios en NSView o NSWindow
- 4. NSView ratón seguimiento
- 5. NSView Color de borde
- 6. NSView: Arrastrando la vista
- 7. Superposición NSView sobre NSScrollView
- 8. Cacao: evento clave en NSView no encendido
- 9. ¿Guardar un NSView en un archivo png?
- 10. Cómo deshabilitar Haga clic en un NSView detrás de otro NSView
- 11. Contexto de dibujo de NSView
- 12. Cambiar orden de subvistas NSView
- 13. Copie un proyecto en SVN
- 14. copie líneas parciales en VI
- 15. Copie un objeto en Java
- 16. Copie CGContext en otro CGContext
- 17. Copie NSAttributedString en el cartón
- 18. Comportamiento de ajuste de tamaño de NSView
- 19. Fondo borroso debajo de un NSView
- 20. NSView drawRect ¿interfiere con las subvistas?
- 21. cacao NSView subvista arrastre bloqueo/drop
- 22. ¿Cómo establecer el tamaño NSView mediante programación?
- 23. Animación explícita de NSView usando animación central
- 24. Copie un archivo en Ruby on Rails
- 25. Copie la imagen al portapapeles en android
- 26. No copie todo en la carpeta bin
- 27. Copie archivos al portapapeles en C#
- 28. Copie todos los archivos en el directorio
- 29. Copie campos entre clases similares en java
- 30. Copie y extienda objetos globales en javascript
Tenga en cuenta que si subclase, que necesita para implementar el soporte de archivado. Los documentos lo saben todo. – bbum
En todos los casos que subclase, ¿incluso cuando no tengo datos agregados sino solo un par de métodos? – Nektarios
Nektarios: http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/MemoryMgmt/Articles/mmImplementCopy.html –