Почему - [NSPasteboard writeObjects:] возвращает NO для массива объектов NSURL? - PullRequest
1 голос
/ 11 октября 2010

У меня есть NSArrayController, который я использую для предоставления данных в IKImageBrowserView. Я хочу поддерживать перетаскивание из IKImageBrowserView в другие приложения. Вот соответствующий метод из моего кода:

- (NSUInteger) imageBrowser:(IKImageBrowserView *) aBrowser writeItemsAtIndexes:(NSIndexSet *) itemIndexes toPasteboard:(NSPasteboard *)pasteboard{
    NSArray *items = [[resultsArrayController arrangedObjects] objectsAtIndexes:itemIndexes];
    if(![pasteboard writeObjects:items]){
        return 0;
    }
    return [items count];
}

Мое приложение новое, поэтому я нацеливаюсь на 10.6+ и в соответствии с документацией , "В Mac OS X v10.6 и более поздних версиях используйте writeObjects: для записи URL-адресов непосредственно в монтажный стол".

Я проверил, что объекты, которые я пытаюсь написать, действительно являются объектами NSURL, поэтому я не уверен, где происходит сбой процесса или как устранить проблему. Заранее спасибо за любую помощь.

Ответы [ 3 ]

10 голосов
/ 11 октября 2010

Вы уже очистили картон?Вам нужно сделать это и, таким образом, стать владельцем монтажной панели, прежде чем вы сможете записывать объекты в монтажную панель.

1 голос
/ 11 октября 2010

Проверено ли, что ваша переменная pasteboard не равна нулю?

0 голосов
/ 11 октября 2010

Должны ли объекты, которые должны быть отправлены - [NSPasteboard writeObjects:], быть NSPasteboadItems?Вы можете установить их строковое значение в absoluteString NSURL и записать массив NSPasteboadItems.

...