0

我有一个只允许拖动单个文件的拖动操作,我想在“draggingEntered”上捕获它,如下所示:

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

但是count不是有效的方法或属性,但我不知道用什么替换它,那么这是查看 draggingPasteboard 上有多少项目的最佳方法?我应该使用propertyListForType: NSFilenamsPboardType之类的东西在 draggingPasteboard 上获取文件名数组,然后获取它的索引,还是有更聪明的方法来做到这一点?

4

1 回答 1

1

如果你想使用 count 你需要使用pasteboardItemswhich is items 数组来响应计数。

可以这样做:

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

    if([[[sender draggingPasteboard] pasteboardItems] count] == 1) {
        return NSDragOperationCopy;
    }
    else {
        return NSDragOperationNone;
    }
}
于 2012-05-22T08:42:44.007 回答