Objective c 奇怪的NSPasteboard和TextEdit交互

Objective c 奇怪的NSPasteboard和TextEdit交互,objective-c,cocoa,drag-and-drop,appkit,Objective C,Cocoa,Drag And Drop,Appkit,我从我的应用程序中的两个位置拖放字符串。一个来自自定义NSView,另一个来自NSTableDataSource委托。第一个允许我将文本拖到TextEdit应用程序中,第二个不允许。我可以从这两个应用程序拖动到其他应用程序,如Terminal或TextMate。据我所知,我对这两种语言使用的代码几乎相同 我在想到底出了什么问题。它的工作原理,因为我可以拖动到一些应用程序。但是文本编辑是怎么回事 从自定义视图: (void)mouseDown:(NSEvent *)theEvent { N

我从我的应用程序中的两个位置拖放字符串。一个来自自定义
NSView
,另一个来自
NSTableDataSource
委托。第一个允许我将文本拖到TextEdit应用程序中,第二个不允许。我可以从这两个应用程序拖动到其他应用程序,如Terminal或TextMate。据我所知,我对这两种语言使用的代码几乎相同

我在想到底出了什么问题。它的工作原理,因为我可以拖动到一些应用程序。但是文本编辑是怎么回事

从自定义视图:

(void)mouseDown:(NSEvent *)theEvent
{
    NSString *testString = @"TEST";

    NSImage *dragImage;
    NSPoint dragPosition;

    NSPasteboard *pboard = [NSPasteboard pasteboardWithName:NSDragPboard];

    [pboard declareTypes:[NSArray arrayWithObjects: NSStringPboardType, nil] owner:nil];
    [pboard setString:testString forType:NSStringPboardType];

    dragImage = // blah
    dragPosition = [self convertPoint:[theEvent locationInWindow] fromView:nil];

    [self dragImage:dragImage
                 at:dragPosition
             offset:NSZeroSize
              event:theEvent
         pasteboard:pboard
             source:self
          slideBack:YES];
    }
}
从表中选择代理:

(BOOL)tableView: (NSTableView *)aTableView writeRowsWithIndexes: (NSIndexSet *)indexes toPasteboard: (NSPasteboard *)pboard
{
    NSString *testString = @"TEST";

    [pboard declareTypes:[NSArray arrayWithObjects: NSStringPboardType, nil] owner:nil];
    [pboard setString:testString forType:NSStringPboardType];

    return YES;
}
如果我打印出第一张pboard的类型:

"public.utf8-plain-text",
NSStringPboardType,
第二点:

"public.utf8-plain-text",
NSStringPboardType,
同样,第一部分的内容:

2010-11-16 13:56:01.832 XXX[1654:a0f] public.utf8-plain-text:TEST
2010-11-16 13:56:01.838 XXX[1654:a0f] NSStringPboardType:TEST
第二

2010-11-16 13:56:05.623 XXX[1654:a0f] public.utf8-plain-text:TEST
2010-11-16 13:56:05.623 XXX[1654:a0f] NSStringPboardType:TEST

据我所知,这两个人的行为应该是一样的。但事实并非如此。Ideas?

实现
NSTableViewDataSource
的对象是界面中的可见功能吗?当你说你正在从那个对象拖动时,你的意思是你正在从tableView拖动吗?Josh-很抱歉,这是很久以前的事了,我不记得了。从那以后我就开始了。没问题,我想这可能是个太老的问题了。我只是想我知道问题是什么。好吧,请随意分享你的想法!我相信其他人会来的。你说得很对。然而,我只是摆弄着它,它不是我想象的那样。哦,好吧。