0

AESアルゴリズムを使用して画像を暗号化しました。この画像を使用すると、IKImageBrowserView画像が正しく表示されますが、画像をペーストボードにドラッグアンドドロップできません。IKImageBrowserViewこのように画像オブジェクトに画像表現を設定しました

- (NSString *)  imageRepresentationType
{
    return IKImageBrowserNSDataRepresentationType;
}
- (id)  imageRepresentation
{
   return  [[NSData dataWithContentsOfFile:path]decryptWithString:PASS];
}

しかし、私がこのように与えるときの仕事

- (NSString *)  imageRepresentationType
{
    return IKImageBrowserPathRepresentationType;
}

- (id)  imageRepresentation
{
    return path;
}

上記のコードは、そこから画像をドラッグすると画像IKImageBrowserViewのパスが返されるため、機能しています。

次に、暗号化された画像を Pasteboard にドラッグ アンド ドロップするために必要なことを説明しますIKImageBrowserView

4

1 に答える 1

0

ついにできた。

ファイルパスで表されていない画像の場合、実装する必要があります-imageBrowser:writeItemsAtIndexes:toPasteboard:

- (NSUInteger) imageBrowser:(IKImageBrowserView *) aBrowser writeItemsAtIndexes:(NSIndexSet *) itemIndexes toPasteboard: (NSPasteboard *)pasteboard
{
        NSUinteger index;

        //instantiate an array to store paths
        filesArray = [NSMutableArray array];

        //for each index...
for(index = [itemIndexes firstIndex]; index != NSNotFound; index = [itemIndexes indexGreaterThanIndex:index]){

                //...get the path you want to add to the pasteboard
                id myDatasourceItem = [_myDatasourceArray objectAtIndex:index];
                NSString *path = [myDatasourceItem myLargeImageFilePath];

                //add it to your array
                [filesArray addObject:path];
        }

        //declare the pasteboard will contain paths
[pasteboard declareTypes:[NSArray arrayWithObjects:NSFilenamesPboardType,nil] owner:self];

        //set the paths
[pasteboard setPropertyList:filesArray forType:NSFilenamesPboardType];

         //return the number of items added to the pasteboard
         return [filesArray count];
}
于 2013-06-03T10:14:08.820 に答える