复制NSView in cocoa / objective-c [英] Copy NSView in cocoa / objective-c
本文介绍了复制NSView in cocoa / objective-c的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我看不到任何方式复制NSView并创建一个相同的NSView对象。我看到关于使用NSData的google命中,但我不明白。
I can't see any way to copy an NSView and create an identical NSView object. I see google hits about "use an NSData" but I don't understand that.
推荐答案
NSView,该视图必须实现 NSCopying
协议。不幸的是,NSView没有。
To straight up "copy" an NSView, the view has to implement the NSCopying
protocol. Unfortunately, NSView does not.
幸运的是, 实现了 NSCoding
这意味着我们仍然可以复制一个视图:
Fortunately, it does implement the NSCoding
protocol, which means we can still duplicate a view like:
NSData * archivedView = [NSKeyedArchiver archivedDataWithRootObject:myView];
NSView * myViewCopy = [NSKeyedUnarchiver unarchiveObjectWithData:archivedView];
和voilá!您现在有 myView
的重复。
And voilá! You now have a duplicate of myView
.
编辑: Swift版本)
(Swift version)
let archivedView = NSKeyedArchiver.archivedData(withRootObject: myView)
let myViewCopy = NSKeyedUnarchiver.unarchiveObject(with: archivedView)
( archivedView
Data
,不是 NSData
)
这篇关于复制NSView in cocoa / objective-c的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文