3

私が高レベルでやろうとしているのは、このコードを使用してペーストボードにある現在のデータ (あらゆるタイプのデータ) を保存することです。これは正しいと思います:

- (NSArray *)readFromPasteBoard
{
    NSMutableArray *pasteboardItems = [NSMutableArray array];
    for (NSPasteboardItem *item in [pasteboard pasteboardItems]) {
        //Create new data holder
        NSPasteboardItem *dataHolder = [[NSPasteboardItem alloc] init];
        //For each type in the pasteboard's items
        for (NSString *type in [item types]) {
            //Get each type's data and add it to the new dataholder
            NSData *data = [[item dataForType:type] mutableCopy];
            if (data) {
                [dataHolder setData:data forType:type];
            }
        }
        [pasteboardItems addObject:dataHolder];
    }
    return pasteboardItems;
}

pasteboardItemsその後、後で使用するために保管します。私の問題は、この同じデータをペーストボードに書き込もうとしたときです。

- (void)writeToPasteBoard:(NSArray *)objectsToWrite
{
    [pasteboard clearContents];
    [pasteboard writeObjects:objectsToWrite];
}

私がやっていることは、NSPasteboardItem以前に作成した配列を渡すことです。次に、次のエラーが表示されます。

Cannot write pasteboard item <NSPasteboardItem: 0x101a11540>.  It is already associated   
with another pasteboard.

NSPasteboardItemペーストボードに書き込もうとしているのは、自分でインスタンス化してペーストボードから取得したことがないため、ペーストボードに関連付けられていないため、少し混乱しています。ご協力ありがとうございます。詳細が必要な場合はお知らせください。

4

0 に答える 0