Прошло много времени с тех пор, как я занимался разработкой 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:, но ни один из них, похоже, не дал никаких результатов.