【问题标题】:It fails to copy a string to pasteboard无法将字符串复制到粘贴板
【发布时间】:2012-09-23 05:23:05
【问题描述】:

我有一个名为 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。

【问题讨论】:

    标签: objective-c macos cocoa


    【解决方案1】:

    你可以简单地使用:

    [pb setString:text forType:NSPasteboardTypeString];
    

    或者,您可能想在NSPasteboardItem 上使用setString:forType。

    【讨论】:

      猜你喜欢
      • 2022-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-06
      • 2013-11-21
      • 2010-10-09
      • 1970-01-01
      • 2015-07-17
      相关资源
      最近更新 更多