2015-01-06 2 views
0

Пытаясь взломать что-то быстрое и грязное, эта масса переименовывает и конвертирует файлы и имеет лицензию на rubymotion. Я думал, почему бы не использовать ее для создания простого приложения, которое вы можете использовать перетаскивание вместо какого-либо командного файла.Как внедрить функцию перетаскивания на Rubymotion для приложения OSX

Однако у меня возникли проблемы с обнаружением события перетаскивания, похоже, я не могу найти информацию о том, как это сделать в rubymotion, я только использовал rubymotion для приложений iOS и считаю себя потерянным.

Любая помощь будет оценена по достоинству.

+0

Я не сделал drag + drop в OSX самостоятельно, но вы можете посмотреть документацию Apple: https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/DragandDrop/DragandDrop.html –

ответ

1

Вы начали работу с учебниками по какао? Все, что написано в Objective-C, можно легко переносить. Я хотел бы начать здесь: Drag and Drop Programming (developer.apple.com)

Если вы хотите, чтобы поддержать перетаскивание на значок док-станции, вам необходимо изменить поддерживаемые типы документов проекта, и я не знаю, как это сделать (проверить rake config, он может дать ключ). Вы будете в конечном итоге необходимо реализовать этот метод тоже:

def application(sender, openFile: path) 
    # sender is an NSApplication, path is NSString 
    true # or false 
end 
+0

I забыл, что 'app.info_plist' доступен, поэтому вы должны иметь возможность добавлять туда типы документов. XML-ключ - это 'CFBundleDocumentTypes' и' CFBundleTypeExtensions', например. 'app.info_plist ['CFBundleDocumentTypes'] = [{'CFBundleTypeExtensions' => ['txt'], 'CFBundleTypeRole' => 'Editor'}]' – colinta

+0

Я получил эти ключи отсюда: http: // qt-project. org/doc/note_revisions/351/659/view – colinta

+0

Благодарим вас за советы! все еще имея трудности при переводе obj-c в ruby, я знаю, что это должно быть высокоприоритетным, чтобы иметь возможность сделать это, поскольку большая часть информации для OSX и iOS будет в Obj-C. – Saifis

0

Вам нужно добавить что-то вроде:

app.info_plist['CFBundleDocumentTypes'] = [ 
    {'CFBundleTypeRole': 'Viewer', 'CFBundleTypeExtensions': ['mp4','m4v','avi','*'] } , 
    {'CFBundleTypeRole': 'Editor', 'CFBundleTypeExtensions': ['txt'] } 
] 

к блоку настройки в Rakefile

И добавьте следующий метод класс AppDelegate в app_delegate.rb

def application(sender, openFile: path) 
    true 
end 

Сделайте rake clean, прежде чем вы сделаете rake build, и вам должно быть хорошо.

Обратите внимание, что метод application вызывается для каждого файла, который вы бросаете на значок приложения. path содержит строку пути удаленных файлов.