Прошло некоторое время с тех пор, как я занимался разработкой Cocoa, и я пытаюсь завершить это очень быстрое и грязное (и простое) приложение. Я решил использовать MacRuby, потому что это был хороший повод изучить его, а приложение достаточно простое, чтобы в нем был смысл.
Однако у меня возникли проблемы с получением пользовательского представления для ответа на события перетаскивания.
class ImportPanel < Panel
def initWithFrame(frame)
registerForDraggedTypes(NSArray.arrayWithObjects(NSPasteboardTypeSound, nil))
super(frame)
end
def mouseDown(event)
NSLog('click')
end
def draggingEntered(sender)
NSLog('drag')
end
end
Панель в данном случае — это просто NSView, добавляющий границу. Это пользовательское представление (ImportPanel) правильно реагирует на события кликов, но совсем не реагирует на события перетаскивания. Я пробовал несколько разных типов и конфигураций картона для registerForDraggedTypes:, но ни один из них не дал никаких результатов.