Я делаю перетаскивание с NSView.
В объекте, который нужно перетащить, который является подклассом NSView, я реализовал mouseDown: метод следующим образом:
@try {
NSPoint location;
NSSize size ;
NSPasteboard *pb = [NSPasteboard pasteboardWithName:@"CameraIconContainer"];
location.x = ([self bounds].size.width - size.width)/2 - 21.0;
location.y = ([self bounds].size.height - size.height)/2 - 7.0;
NSLog(@"mouseDown: location- (%f, %f)",location.x,location.y);
NSDictionary *iconViewDict = [[NSDictionary alloc] initWithObjectsAndKeys:[cameraNo stringValue],@"cameraNo",nil];
NSLog(@"iconViewDict - %@",iconViewDict);
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:iconViewDict];
[pb declareTypes:[NSArray arrayWithObject:IconDragDataType] owner:self];
[pb setData:data forType:IconDragDataType];
[self dragImage:[NSImage imageNamed:@"camera_icon.png"] at:location offset:NSZeroSize event:e pasteboard:pb source:self slideBack:YES];
}
@catch (NSException * e) {
NSLog(@"CameraIconView (-mouseDown:), error - %@",e);
}
Большинство извремя работает нормально, но проблема в том, что иногда возникает это
исключение: недопустимый параметр не удовлетворяет: theWriteStream! = NULL
в mouseDown: метод,из-за этого перетаскиваемое изображение постоянно появляется на экране, которое не исчезает, даже если выбрано какое-то другое окно.
Может кто-нибудь подсказать мне, почему оно происходит и как я могу его разрешить?
Спасибо,
Miraaj