Очень смущает проблема привязки между приложением Cocoa и патчем Movie Loader в Quartz Composer - PullRequest
3 голосов
/ 15 июня 2011

Я программировал некоторое время, но совсем недавно решил начать разработку для Mac OS X. Я чувствую, что за прошлую неделю я познакомился с основами разработки Objective-C и Cocoa. Я планирую создавать графические приложения, и в настоящее время я нахожусь в процессе обучения тому, как управлять композициями Quartz с помощью приложения Cocoa. Я прошел учебник, который предлагает Apple (с композицией Mac Engravings), и смог создать его просто отлично. Чтобы убедиться, что я действительно понял то, что я узнал, я решил создать свою собственную композицию и связать ее с немного более сложным приложением Cocoa.

По сути, у меня есть композиция, которая загружает фильм или изображение через патч Movie Loader, после чего он применяет различные фильтры к кадрам перед их выводом. В моем приложении Cocoa я написал код (точнее, скопированный и вставленный из других примеров яблок), который позволяет пользователю выбирать файл с помощью объекта NSOpenPanel. Путь к файлу выбранного файла помещается в текстовое поле, которое я поместил в окно приложения с помощью Interface Builder. Я связал значение указанного текстового поля с ключом «Movie_Location» в моей композиции, который является опубликованным вводом в патче Movie Loader, который я использую. Однако независимо от того, что я делаю, фильмы и изображения не загружаются в эту композицию, что бы я ни пытался. Единственное, что отображается, - это изображение по умолчанию, которое я сохранил во входных данных из Quartz Composer (или ничего, если я оставлю его пустым перед публикацией).

Я добавил в композицию патч «Очистить цвет» и связал его с цветовой ячейкой в ​​моем пользовательском интерфейсе, и это успешно меняет цвет на моем дисплее, поэтому я знаю, что композиция и мое приложение Cocoa взаимодействуют. В этот момент я провел много часов, пытаясь выяснить, что происходит, и я почти сдался. Есть ли в Movie Loader какие-то странные поведения, о которых я не знаю, или есть что-то очевидное, чего мне не хватает? Буду очень признателен за любую помощь или совет от кого-либо.

Спасибо, что прочитали это ...

Лучшее, Сами

Ответы [ 2 ]

0 голосов
/ 16 июня 2011

Я понял это вчера.Вторая идея spudwaffle в том, что происходит.Если бы я набрал путь к файлу и нажал Enter, он бы работал нормально.Я получил это, чтобы работать должным образом, просто удалив привязку и вместо этого используя функцию setValue: keyInPath:, которую предлагает контроллер исправлений.Тем не менее, есть ли способ заставить текстовое поле для обновления?Я помню, как видел «постоянно обновлять» или что-то вроде этой кнопки в подменю bind в инспекторе, но мой код не работал с этой проверенной тоже.мне!Я очень ценю это.

Бест, Сами

0 голосов
/ 15 июня 2011

Есть две вещи, которые я могу назвать причинами, почему он делает это:

  1. Путь к файлу не отформатирован неправильно. Попробуйте проверить обратную косую черту, двоеточия и т. Д.
  2. Поле не обновляет значение. Попробуйте буквально нажать на текстовое поле и нажать Enter.

Это все, что я могу придумать, не видя твою кварцевую композицию и / или код.

EDIT:

Отметьте другой непрерывный флажок в общих свойствах.

...