复制NSView in cocoa / objective-c [英] Copy NSView in cocoa / objective-c

查看:192
本文介绍了复制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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆