NSCollectionView에 디스크에 처음 저장하지 않고도 NSImages를 추가 할 수 있습니다. 이미지는 NSMutableArray에서 콜렉션 뷰로 공급됩니다. 이렇게하면 사람들은 먼저 이미지를 저장할 필요없이 이미지를 볼 수 있습니다.IKimagerowserview에 NSImage 추가
IKImageBrowserView로 구현할 수있는 유사한 기능이 있습니까? NSCollectionView는 이미지를 표현할 때 작동하지만, IKImageBrowserView와 비슷한 것을 할 수 있는지 알고 싶습니다.
디스크에 저장된 이미지로 Apple IKImageBrowserView를 쉽게 구현할 수 있지만 (Apple docs는 어떻게 작동합니까?) 처음 저장하는 대신 NSMutableArray에서 직접 브라우저보기에 이미지를 추가하는 방법이나 위치를 정확하게 파악할 수 없습니다. 이미지를 디스크에 저장합니다.
저는 여기를 잃고 있습니다. 문서 들과는 별도로 어디서 방향을 찾아야할지 모르겠습니다. 또는 내가 무엇을하고 싶은지 부르는 것이 무엇이든지.
편집 :
// 데이터 오브젝트 (여기에 코드의 일부이다) -이 이미지 오브젝트를 표현하기 위해 가능하면 아마 잘못 하겠어 곳이입니다.
@interface ImageObject : NSObject
@property (readwrite, copy) NSImage *image;
@property (readwrite, copy) NSString *imageID;
- (id)initWithImage:(NSImage *)anImage;
- (NSString *)imageUID;
- (NSString *)imageRepresentationType;
- (id)imageRepresentation;
@end
@implementation ImageObject
@synthesize image = _image;
@synthesize imageID = _imageID;
- (id)initWithImage:(NSImage *)anImage
{
if (self = [super init]) {
_image = [anImage copy];
}
return self;
}
- (NSString *)imageUID
{
return _imageID;
}
- (NSString *)imageRepresentationType
{
return IKImageBrowserNSImageRepresentationType;
}
- (id)imageRepresentation
{
return _image;
}
@end
// 개체가 browserView에 추가되는 방식입니다. 이 모든 것은 애플의 직설적이다.
- (void)updateDatasource
{
[_browserImages addObjectsFromArray:_importedImages];
[_importedImages removeAllObjects];
[imageBrowser reloadData];
}
- (NSUInteger)numberOfItemsInImageBrowser:(IKImageBrowserView *)aBrowser
{
return [_browserImages count];
}
- (id)imageBrowser:(IKImageBrowserView *)aBrowser itemAtIndex:(NSUInteger)index
{
return [_browserImages objectAtIndex:index];
}
여기 Nmapmages를 browserView에 추가하려고 시도하지만 아무 일도 일어나지 않습니다. 배열에 데이터가 채워지지만 오류없이 이미지가 생성되지만 화면에는 아무 것도 나타나지 않습니다. 검색 결과의 나머지를 탐험 ...에 관해서는
AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:[oPanel URL] options:nil];
NSMutableArray *timesArray = [self generateTimeForSpecifiedNumberOfFramesInVideo:10 UsingAsset:asset];
self.imageGenerator = [AVAssetImageGenerator assetImageGeneratorWithAsset:asset];
[[self imageGenerator] generateCGImagesAsynchronouslyForTimes:timesArray completionHandler:^(CMTime requestedTime, CGImageRef image, CMTime actualTime, AVAssetImageGeneratorResult result, NSError *error) {
NSImage *testImage = [[NSImage alloc] initWithCGImage:image size:NSZeroSize];
if (result == AVAssetImageGeneratorSucceeded) {
ImageObject *objects = [[ImageObject alloc] initWithImage:testImage];
[_importedImages addObject:objects];
}
}
이 그 일을하고. 내가 무엇이든 놓친다면 친절하게이 문제가 이미 다루어 진 게시물을 나타내는 중복으로이 질문을 표시하십시오.
편집 :
아래 답변을 수락했습니다. 고유 ID 문제와 함께. 나는 updateDatasource 메소드를 호출하는 간단한 요구 사항을 간과했다.
몇 가지 노력을 보여 주면 도와 드리겠습니다. 모든 검색 결과를 탐색 해 보시기 바랍니다. 한 달 전에 IKImageBrowserView를 처음 사용하려고했을 때 그랬습니다. –
@TBlue 업데이트 된 질문. –