AppKit Python и делегаты ObjectiveC

AppKit позволяет программам Python на Mac использовать классы ObjectiveC. Я не очень хорошо знаком с ObjectiveC, но хочу получить доступ к NSSound с помощью AppKit для создания аудиоплеера.

Мой проигрыватель должен выполнить какое-то действие, например загрузить следующий элемент из списка воспроизведения, когда текущий звук завершится. Есть метод с именем sound:didFinishPlaying:, который, я полагаю, вызывается в этот момент. Согласно документации должен быть установлен делегат, который получает вызов этого метода.

Может ли кто-нибудь помочь мне перевести это на Python/AppKit? Как я могу реализовать делегат в Python и позволить ему получать уведомление didFinishPlaying?


person user286262    schedule 04.03.2010    source источник


Ответы (1)


Первым шагом на пути к успешной разработке приложения Cocoa/AppKit на основе PyObjC является изучение Objective-C, а затем изучите Какао.

Второй шаг — отказаться от Python и просто использовать Objective-C для своего приложения.

PyObjC (и MacRuby) — замечательные технологии, но для успеха в обеих требуется понимание шаблонов и API-интерфейсов системных фреймворков. Это, в свою очередь, требует практических знаний Objective-C, достаточных для создания простых приложений.

Теперь, если бы вам нужно было интегрировать какую-нибудь массивную библиотеку Python, скажем, Twisted, тогда использование Python в качестве основного языка реализации было бы вполне уместным. Но вам все равно понадобится хорошая база знаний/комфорта с Objective-C и Cocoa API.

person bbum    schedule 04.03.2010