我有一个名为 text 的字符串,在主菜单 xib 文件中,我将复制菜单项与通过观察者调用的操作链接起来。我用断点验证了这个方法实际上被调用了,但问题是字符串不是真的复制到粘贴板:
- (void) copy: (NSNotification*) notification
{
if([[self window]isKeyWindow])
{
// It always enters in this block
NSPasteboard* pb=[NSPasteboard generalPasteboard];
NSPasteboardItem* item=[[NSPasteboardItem alloc]init];
[pb clearContents];
[item setData: [NSKeyedArchiver archivedDataWithRootObject: text] forType: NSPasteboardTypeString];
[pb writeObjects: [NSArray arrayWithObject: item]];
}
}
进入块后,它会清除粘贴板的所有内容。但如果我尝试将复制的内容粘贴到文本编辑中,它不会粘贴任何内容(空字符串),但字符串的长度不为零。
我还尝试检查 writeObjects 的返回值,它返回 YES。