Я никогда не занимался NSViews, поэтому я нахожусь в убытке от этого. У меня есть собственный класс, содержащий NSImage
ivar. У меня также есть подкласс NSView
, который содержит массив экземпляров моего пользовательского класса. NSImage
из пользовательского класса рисуется в центре NSView
при создании. Мне нужно уметь тащить это NSImage
вокруг NSView
свободно.Как реализовать перетаскивание NSImage внутри NSView?
Я выполнил следующие методы, чтобы начать работу:
-(void)mouseDown:(NSEvent *)theEvent
{
[self beginDraggingSessionWithItems: /* I don't know what to put here */
event:theEvent
source:self];
}
Я попытался поместить NSImage
объект из моего пользовательского класса в массив в качестве элемента перетащить но исключение. Я также попытался создать NSDraggingItem
, чтобы разместить его там, но он не смог записать объект в картотеку и создал исключение.
-(void)draggingSession:(NSDraggingSession *)session willBeginAtPoint:(NSPoint)screenPoint
{
NSLog(@"began");
}
-(void)draggingSession:(NSDraggingSession *)session movedToPoint:(NSPoint)screenPoint
{
NSLog(@"moved");
}
-(void)draggingSession:(NSDraggingSession *)session endedAtPoint:(NSPoint)screenPoint operation:(NSDragOperation)operation
{
NSLog(@"ended");
}
Эти методы вызываются правильно, как я нажимаю и перетащить мышь вокруг моего подкласса NSView
однако они бесполезны, пока я не могу получить объект для перемещения.
Я считаю, что ответ может состоять в том, чтобы создать для каждого изображения NSDraggingItem
и использовать его для свободного перемещения вокруг представления, но я не мог заставить его работать с одним объектом и не знаю, как правильно реализовать эту идею. Любая помощь приветствуется.
'dragImage: на: смещение: событие: картон: source: slideBack: 'устарел с 10.10 SDK. –