我有一个拖动操作,只允许拖动一个文件,我想像这样在“ draggingEntered”上捕获它:

- (NSDragOperation)draggingEntered:(id<NSDraggingInfo>)sender {
  if ([[sender draggingPasteboard] count]] == 1) {
    return NSDragOperationCopy;
  }
  else {
    return NSDragOperationNone;
  }
}


但是count不是有效的方法或属性,但是我无法弄清楚用什么替换它,所以哪种方法是最好的方法来查看draggingPasteboard上有多少个项目?我应该使用诸如propertyListForType:NSFilenamsPboardType之类的东西在draggingPasteboard上获取文件名数组,然后获取该文件的索引,还是有一种更聪明的方法来做到这一点?

最佳答案

如果要使用计数,则需要使用pasteboardItems,它是对计数作出响应的项数组。

可以这样完成:

- (NSDragOperation)draggingEntered:(id<NSDraggingInfo>)sender {

    if([[[sender draggingPasteboard] pasteboardItems] count] == 1) {
        return NSDragOperationCopy;
    }
    else {
        return NSDragOperationNone;
    }
}

关于xcode - 如何查看draggingPasteboard中有多少个文件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10697979/

10-08 21:26