我有一个我希望能够放在粘贴板上的自定义类。 这是我到目前为止的代码
- (NSArray *)writableTypesForPasteboard:(NSPasteboard *)pasteboard {
static NSArray *writableTypes = nil;
if (!writableTypes) {
writableTypes=[NSArray arrayWithObjects:(NSString *)kUTTypeXML, nil];
}
return writableTypes;
}
- (id)pasteboardPropertyListForType:(NSString *)type {
return [NSKeyedArchiver archivedDataWithRootObject:[MyClass class]];
}
答案 0 :(得分:0)
这部分不对:
- (id)pasteboardPropertyListForType:(NSString *)type {
return [NSKeyedArchiver archivedDataWithRootObject:[MyClass class]];
}
看起来您正在尝试归档实际的MyClass
类,您应该在其中归档MyClass
对象,即{{1}的特定实例而不是类本身。此外,您应该检查传入的类型,以确保您提供正确的数据。所以,它应该看起来像:
MyClass
最后,确保- (id)pasteboardPropertyListForType:(NSString *)type {
if ([type isEqualToString:kUTTypeXML]) {
return [NSKeyedArchiver archivedDataWithRootObject:self.someInstanceOfMyClass];
}
return nil;
}
实现MyClass
协议,以便您可以创建包含对象数据的存档。