我在使用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论坛,但我没有运气。
感谢您的建议
答案 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上询问此问题。