Ich kann keine Möglichkeit zum Kopieren eines NSView und Erstellen eines identischen NSView-Objekts sehen. Ich sehe google hits über "Verwenden Sie eine NSData", aber ich verstehe das nicht.Kopieren NSView in Kakao/Ziel-c
13
A
Antwort
24
Um ein NSView "kopieren" zu können, muss die Ansicht das Protokoll NSCopying
implementieren. Leider funktioniert NSView nicht.
Glücklicherweise ist es nicht implementiert das NSCoding
-Protokoll, das bedeutet, dass wir immer noch eine Ansicht wie duplizieren:
NSData * archivedView = [NSKeyedArchiver archivedDataWithRootObject:myView];
NSView * myViewCopy = [NSKeyedUnarchiver unarchiveObjectWithData:archivedView];
und voila! Sie haben jetzt ein Duplikat von myView
.
Edit: (Swift-Version)
let archivedView = NSKeyedArchiver.archivedData(withRootObject: myView)
let myViewCopy = NSKeyedUnarchiver.unarchiveObject(with: archivedView)
(archivedView
ist vom Typ Data
, nicht NSData
)
Verwandte Themen
- 1. NSView Rahmenfarbe
- 2. NSView .Transformäquivalent?
- 3. Draggable NSView
- 4. Löcher in NSView oder NSWindow
- 5. Cocoa NSView in NSTableView Zelle
- 6. NSView Fehler in einem sehr einfachen Programm
- 7. Transparenter Hintergrund WKWebView (NSView)
- 8. NSView -dataWithPDFInsideRect: und Ebenenrahmen
- 9. Skalieren von NSView
- 10. NSView Subviews Reihenfolge ändern
- 11. Benutzerdefiniertes NSView in NSMenuItem empfängt keine Mausereignisse
- 12. Startfenster von NSView-Unterklasse in Kakao
- 13. Layer-unterstützte NSView-Probleme in viewDidLoad
- 14. Zentrieren Sie ein NSView in einem NSScrollView
- 15. Update NSView in Funktion von Ereignissen
- 16. Mac Schnellvorschau in einem NSView oder NSImage?
- 17. Maus über in einer NSView Unteransicht
- 18. Controls in NSView kann nicht versteckt werden
- 19. Falscher NSCursor vom Hintergrund NSView
- 20. NSView - Quick Look und NSResponder
- 21. Wie programmgesteuert NSView-Größe festlegen?
- 22. Tabulatorreihenfolge für NSTextFields eines NSView
- 23. Layout NSView ohne Auto-Layout
- 24. performSegueWithIdentifier aus einer NSView-Unterklasse?
- 25. NSView lässt Artefakte in einem anderen NSView, wenn der erste über den zweiten verschoben wird
- 26. So deaktivieren Sie Klicken Sie sich durch ein NSView hinter einem anderen NSView
- 27. NSVIEW Benutzerdefinierte Ansicht wird nicht skaliert
- 28. Verhalten Unterschied zwischen UIViewviews und [NSView Subviews]
- 29. Linke und rechte Maustaste auf NSView erkennen
- 30. NSProgressIndicator Probleme - vielleicht meine NSView-Unterklasse?
Beachten Sie, dass, wenn Sie eine Unterklasse, werden Sie Archivierungsunterstützung implementieren müssen. Die Ärzte wissen alles. – bbum
In jedem Fall, dass ich Unterklasse - auch wenn ich keine Daten hinzugefügt habe, aber nur ein paar Methoden? – Nektarios
Nektarios: http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/MemoryMgmt/Articles/mmImplementCopy.html –