2013-02-02 43 views
0

我創建了NSViewController用於管理PXListView ....委託是有文件所有者連接...PXListView拖放是不是做工作

這裏一切工作爲每expectation..except拖放滴...

同時拖動它不進入拖動委託功能...和它沒有顯示的同時拖動(即拖動符號)+符號...和拖動細胞重新定位到其原始位置

#import "PXListView.h" 

@interface ListViewController : NSViewController <PXListViewDelegate> 
{ 
    IBOutlet PXListView *listView; 
    NSMutableArray *_listItems; 

    int count; 

} 
- (void)addCell; 

@end 



- (BOOL)listView:(PXListView*)aListView writeCellsWithIndexes:(NSIndexSet*)rowIndexes toPasteboard:(NSPasteboard*)dragPasteboard 
{ 
    // +++ Actually drag the items, not just dummy data. 
    [dragPasteboard declareTypes: [NSArray arrayWithObjects: NSStringPboardType, nil] owner: self]; 
    [dragPasteboard setString: @"Just Testing" forType: NSStringPboardType]; 

    return YES; 
} 

- (NSDragOperation)listView:(PXListView*)aListView validateDrop:(id <NSDraggingInfo>)info proposedCell:(NSUInteger)row 
     proposedDropHighlight:(PXListViewDropHighlight)dropHighlight; 
{ 
    return NSDragOperationCopy; 
} 

- (BOOL)listView:(PXListView*)aListView acceptDrop:(id <NSDraggingInfo>)info row: (NSUInteger)row dropHighlight:(PXListViewDropHighlight)dropHighlight 
{ 
    NSLog(@"Accept Drop"); 

    ListViewThumbnailObject *temp = [_listItems objectAtIndex: [listView selectedCell]]; 
    [_listItems removeObjectAtIndex: [listView selectedCell]]; 
    [_listItems insertObject: temp atIndex: row]; 
    [listView reloadData]; 
    return YES; 
} 

它沒有進入在「筆尖」文件委託相關的委託方法拖..

是有線與文件屬主...

任何人都可以請建議我如何解決這個問題?

感謝, MUTHU

回答

0

爲了能夠接受滴,你可能會需要向你保證註冊你打算接受所有類型拖列表視圖。嘗試在你的列表視圖控制器類在awakeFromNib方法添加此:

- (void)awakeFromNib { 
    [listView registerForDraggedTypes:[NSArray 
       arrayWithObjects:NSStringPboardType, nil]]; 
} 

更多信息,請參見Drag and Drop Programming Topics: Receiving Drag Operations

請注意,我在此處使用了NSStringPboardType這個數組,因爲這是您在listView:writeCellsWithIndexes:toPasteboard:方法中聲明要寫入的類型。您使用的確切數組類型取決於您想要支持的類型以及您想要支持的拖動操作的類型(例如,是否只是實現拖放以允許在單個列表視圖中對項目進行重新排序,或者是否允許將項目從Finder中拖動到Finder中,或者在您自己的應用程序中的不同視圖之間拖放項目)。如果您描述了您希望支持的拖拽操作類型,我可以提供更多關於如何實現它們的細節。

+0

現在拖放正在按預期工作... – mammaiap