forKeyPath与Quartz Composer和MacRuby有关

时间:2010-09-19 23:10:15

标签: cocoa key macruby quartz-composer

我在使用MacRuby和Cocoa设置值时遇到了一些问题。我已将QCView和QCPatchController插入到XIB中,并将组合加载到QCPatchController中。一切都在运行,但我无法访问QCView上的已发布输入。

attr_accessor :myQCView #this is bound to the QCController

...
def AppController

txt = "I did it"  
@myQCView.setValue(txt, forKeyPath:"patch.text.value")  

end

我收到错误:

NSUnknownKeyException: [<NSNull 0x7fff7115e000> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key value. (RuntimeError)

我很难过。我试过搜索MacRuby论坛,但我没有运气。

感谢您的建议

1 个答案:

答案 0 :(得分:0)

阅读异常消息:

NSUnknownKeyException: [<NSNull 0x7fff7115e000> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key value. (RuntimeError)

为什么要尝试设置NSNull对象的键value

让我们看看代码。您尝试设置密钥value 是什么?

@myQCView.setValue(txt, forKeyPath:"patch.text.value")  

我明白了:你的QCView是patch.text

因此,您的QCView的patch.text是一个NSNull对象。

attr_accessor :myQCView #this is bound to the QCController

那不是变量的准确名称。我建议使用“myQCPatchController”或“patchController”。

所以现在看起来你正试图设置根补丁的text端口的值。也许根补丁实际上没有名为text的端口?

您可能想在the Quartz Composer mailing list上询问此问题。