如何使用Xamarin中的nsDragginInfo.EnumerateDraggingItems?

如何使用Xamarin中的nsDragginInfo.EnumerateDraggingItems?,xamarin,cocoa,xamarin.mac,xamarin-binding,Xamarin,Cocoa,Xamarin.mac,Xamarin Binding,我正在实现NSTableView行拖放。我正在使用这里的示例 当我在表中拖动一行时,数据源方法被调用,这实际上进展得相当顺利。但是,我在使用Xamarin中的NSDraggingInfo.EnumerateDraggingItems方法时遇到问题 Swift代码示例如下: info.enumerateDraggingItemsWithOptions([], forView: tableView, classes: [NSPasteboardItem.self], searchOptions: [

我正在实现NSTableView行拖放。我正在使用这里的示例

当我在表中拖动一行时,数据源方法被调用,这实际上进展得相当顺利。但是,我在使用Xamarin中的NSDraggingInfo.EnumerateDraggingItems方法时遇到问题

Swift代码示例如下:

info.enumerateDraggingItemsWithOptions([], forView: tableView, classes: [NSPasteboardItem.self], searchOptions: [:]) {
    if let str = ($0.0.item as! NSPasteboardItem).stringForType("public.data"), index = Int(str) {
        oldIndexes.append(index)
    }
}
我遇到的问题是
类:[NSPasteboardItem.self]

Xamarin方法的特征为:

EnumerateDraggingItems(NSDraggingItemEnumerationOptions, NSView, NSPasteboardReading[], NSDictionary, NSDraggingEnumerator)
EnumerateDraggingItems(NSDraggingItemEnumerationOptions, NSView, NSArray, NSDictionary, NSDraggingEnumerator)
EnumerateDraggingItems(NSDraggingItemEnumerationOptions, NSView, IntPtr, NSDictionary, NSDraggingEnumerator)

如何为
classes
参数提供所需的参数?

似乎xamarin版本不正确(查看github上的源代码):

因为classes参数应该是类定义的数组,而不是实例。 使用此版本

EnumerateDraggingItems(NSDraggingItemEnumerationOptions, NSView, NSArray, NSDictionary, NSDraggingEnumerator)
类数组可以这样创建:

var classesArray = NSArray.FromIntPtrs(new IntPtr[] {
    ObjCRuntime.Class.GetHandle(typeof(NSPasteboardItem))
});

尚未对此进行测试。

似乎xamarin版本不正确(查看github上的源代码):

因为classes参数应该是类定义的数组,而不是实例。 使用此版本

EnumerateDraggingItems(NSDraggingItemEnumerationOptions, NSView, NSArray, NSDictionary, NSDraggingEnumerator)
类数组可以这样创建:

var classesArray = NSArray.FromIntPtrs(new IntPtr[] {
    ObjCRuntime.Class.GetHandle(typeof(NSPasteboardItem))
});
我还没有测试过这个