2011-02-04 2 views
0

Чтобы справиться с Drag-н-Drop сделали следующее,Что касается NSoutlineView и WriteItem | Drag-и-Drop Проблема

-(void)InitMyOutlineView{ 
- - - - - - - - - - - - - -- - - - - - - - - 
- - - - - - - - - - - - - -- -- - - - - - - - - 
[pMyOutlineView registerForDraggedTypes: 
    [NSArray arrayWithObject:NSStringPboardType]]; 

/* I tried both Yes and No */ 
[pMyOutlineView setDraggingSourceOperationMask:NSDragOperationEvery forLocal:NO]; 
- - - - -- - - - - - -- - - - - - - -- - - - - - 
- -- -- - - - - -- - - - - - - - - - - - -- - - - 
} 

Метод WriteItem, как показано ниже,

- (BOOL)outlineView:(NSOutlineView *)outlineView writeItems:(NSArray *)items toPasteboard:(NSPasteboard *)pboard{ 
    [self log:@"write Items"]; 
    NSString *pStr = [NSString stringWithFormat:@"this is the temp string "]; 
     [pboard declareTypes:[NSArray arrayWithObject:NSStringPboardType] owner:self]; 
     [pboard setString:pStr forType:NSStringPboardType]; 
     [self log:@"returning YES"]; 
     return YES; 
} 

Теперь я жду контроля придет к методу AcceptDrop, но точка останова не попали туда, и в журнале/GDB получать следующий журнал

2011-02-04 16:21:25.435 MyApp[2006:a0f] write Items 
2011-02-04 16:21:25.437 MyApp[2006:a0f] returning YES 
2011-02-04 16:21:25.439 MyApp[2006:a0f] *** -[NSCFArray initWithObjects:count:]: attempt to insert nil object at objects[0] 

и контроля не пришли к методу acceptDrop,

Когда я включить «Остановка на Exception» Ниже стек вызовов, когда он остановился,

#0 0x981b94e6 in objc_exception_throw 
#1 0x96ed34cf in -[__NSPlaceholderArray initWithObjects:count:] 
#2 0x96efaaa3 in +[NSArray arrayWithObject:] 
#3 0x92316dfd in -[NSOutlineView _columnsForDragImage] 
#4 0x923f1e32 in -[NSTableView _doImageDragUsingRowsWithIndexes:event:pasteboard:source:slideBack:startRow:] 
#5 0x91fea16a in -[NSTableView _performDragFromMouseDown:] 
#6 0x91fe89b9 in -[NSTableView mouseDown:] 
#7 0x91fe864e in -[NSOutlineView mouseDown:] 
#8 0x91f86c68 in -[NSWindow sendEvent:] 
#9 0x91e9f817 in -[NSApplication sendEvent:] 
#10 0x91e332a7 in -[NSApplication run] 
#11 0x91e2b2d9 in NSApplicationMain 

Позвольте мне обновить еще одну вещь, на мой взгляд, набросков, у меня есть пользовательские ячейки, которая является ничем иным, Mac Файл интерфейса ImageTextCell, который я использую.

Может кто-нибудь, пожалуйста, руководство меня, что я делаю неправильно

С наилучшими пожеланиями Rohan

ответ

2

[myoutlineView setOutlineColoumn: firstColumn] отсутствовали, , когда я добавил тогда его раб ты работать

0

Убедитесь, что вы «Остановка по исключениям Objective-C» включен в меню Debug Xcode, а затем запустить приложение под отладчиком (с включенными точками останова). Отладчик остановится, когда генерируется исключение, а затем вы можете выяснить, где вы пытаетесь создать массив с объектом nil.

Мне кажется невероятным, что код, который вы показали, является источником проблемы, поскольку вы передаете строку, глобально определенную в инфраструктуре AppKit.

+0

это стек вызовов я получил, обновленный в вопросе – Amitg2k12

+0

я пытаюсь перетащить одну строку, это означает, в WriteItem мне нужно сохранить свою пользовательскую ячейку, связанную с этой строкой – Amitg2k12

Смежные вопросы