2

アプリファイルをテーブルビューにドロップするのをサポートする次のコードがあります。問題は、ドラッグアンドドロップしたときに緑色の+が表示されないことです。それは何か関係があると思いますがregisterForDraggedTypes:、よくわかりません。私は多くのチュートリアルを試しましたが、どれもうまくいきませんでした。

- (void)awakeFromNib {
[apps registerForDraggedTypes:[NSArray arrayWithObject:@"app"]];    
}


- (BOOL)tableView:(NSTableView *)tv writeRowsWithIndexes:(NSIndexSet *)rowIndexes         toPasteboard:(NSPasteboard*)pboard
{
return YES;
}
- (NSDragOperation)tableView:(NSTableView*)tv validateDrop:(id <NSDraggingInfo>)info proposedRow:(int)row proposedDropOperation:(NSTableViewDropOperation)op
{
return NSDragOperationCopy;
}

- (BOOL)tableView:(NSTableView *)aTableView acceptDrop:(id <NSDraggingInfo>)info
          row:(int)row dropOperation:(NSTableViewDropOperation)operation
{
return YES;
}

前もって感謝します

4

1 に答える 1

2

registerForDraggedTypesファイル拡張子の配列を探していません。ユニフォームタイプ識別子の配列を取ります。ファイル名を受け入れる場合は、:を使用しますNSFilenamesPboardType

 [self registerForDraggedTypes:[NSArray arrayWithObject:NSFilenamesPboardType]];

次に、.appファイルのみを受け入れるには、拡張子を確認し、からYESを返し、とそのペーストボードtableView:acceptDrop:row:dropOperation:から適切な情報を取得します。NSDraggingInfo

于 2011-01-29T21:41:43.680 に答える