3

我已经编程了一段时间,但最近才决定开始为 Mac OS X 开发。我觉得过去一周我已经掌握了 Objective-C 和 Cocoa 开发的基础知识。我正计划制作图形应用程序,因此目前正在学习如何通过 Cocoa 应用程序控制 Quartz 组合。我浏览了苹果提供的教程(使用 Mac Engravings 组合),并且能够很好地创建它。为了确保我真正理解所学内容,我决定创建自己的组合并将其链接到一个稍微复杂的 Cocoa 应用程序。

从本质上讲,我有一个通过电影加载器补丁加载电影或图像的合成,此时它在输出之前将各种过滤器应用于帧。在我的 Cocoa 应用程序中,我编写了允许用户使用 NSOpenPanel 对象选择文件的代码(或者更确切地说是从其他苹果示例复制和粘贴)。他们选择的文件的文件路径被放置在我使用 Interface Builder 放置在应用程序窗口中的文本框中。我将所述文本框的值绑定到我的作品中的“Movie_Location”键,这是我正在使用的 Movie Loader 补丁中发布的输入。但是,无论我做什么,无论我如何尝试,电影和图像都不会加载到此合成中。

我已经在合成中添加了一个 Clear Color 补丁,并将它绑定到我的 UI 中的颜色池,这成功地改变了我的显示颜色,所以我知道合成和我的 Cocoa 应用程序正在通信。在这一点上,我花了很多时间试图弄清楚发生了什么,我几乎放弃了。Movie Loader 是否有任何我不知道的奇怪行为,或者我似乎遗漏了什么明显的东西?我真的很感谢任何人的任何帮助或建议。

感谢您阅读本文...

最好的,萨米

4

2 回答 2

0

我可以认为有两件事是它这样做的原因:

  1. 文件路径的格式不正确。尝试检查反斜杠、冒号等。
  2. 该框未更新该值。尝试逐字单击文本字段并按 Enter。

在没有看到您的石英成分和/或代码的情况下,这就是我能想到的。

编辑:

选中其他连续框,在一般属性中。

于 2011-06-15T02:36:16.333 回答
0

我昨天想通了。spudwaffle 的第二个想法是发生了什么。如果我要输入一个文件路径并按回车,它会工作得很好。我只需删除绑定并使用补丁控制器提供的 setValue:keyInPath: 函数即可正常工作。也就是说,有没有办法强制文本框更新?我记得在检查器的绑定子菜单中看到“持续更新”或类似按钮的东西,但我的代码也无法使用该检查。

感谢那些试图帮助我的人!对此,我真的非常感激。

最好的,萨米

于 2011-06-16T04:13:58.837 回答