2010-06-24 16 views

cevap

24

Bir NSView "kopyasını" düzleştirmek için, görünüm NSCopying protokolünü uygulamalıdır. Ne yazık ki, NSView yapmıyor. voila

NSData * archivedView = [NSKeyedArchiver archivedDataWithRootObject:myView]; 
NSView * myViewCopy = [NSKeyedUnarchiver unarchiveObjectWithData:archivedView]; 

Ve:

Neyse ki biz hala böyle bir görünümün kopyasını anlamına gelir NSCoding protokolü uygulamaya yok! Artık myView kopyası var.


Düzenleme: (Swift versiyon)

let archivedView = NSKeyedArchiver.archivedData(withRootObject: myView) 
let myViewCopy = NSKeyedUnarchiver.unarchiveObject(with: archivedView) 

sen alt sınıfı ise, arşivleme desteği uygulamak gerekeceğini

+3

Notu (archivedView değil NSData, tip Data taşımaktadır). Dokümanlar her şeyi bilir. – bbum

+0

Her durumda, alt sınıfa veri eklediğimde bile, sadece birkaç yöntem ekledim mi? – Nektarios

+0

Nektarios: http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/MemoryMgmt/Articles/mmImplementCopy.html –