gpt4 book ai didi

objective-c - 在 cocoa/objective-c 中复制 NSView

转载 作者:太空狗 更新时间:2023-10-30 03:20:11 25 4
gpt4 key购买 nike

我看不出有什么方法可以复制 NSView 并创建相同的 NSView 对象。我看到有关“使用 NSData”的 google 命中,但我不明白。

最佳答案

要直接“复制”一个 NSView,该 View 必须实现 NSCopying 协议(protocol)。不幸的是,NSView 没有。

幸运的是,它确实实现了NSCoding协议(protocol),这意味着我们仍然可以像这样复制一个 View :

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

瞧!您现在拥有 myView 的副本。


编辑:(Swift 版)

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

(archivedViewData 类型,不是NSData)

关于objective-c - 在 cocoa/objective-c 中复制 NSView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3107429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com