2010-09-19 68 views
0

我在使用MacRuby和Cocoa設置值時遇到了一些問題。我已經將QCView和QCPatchController插入到XIB中,並將組合物加載到QCPatchController中。一切正在運行,但我無法訪問QCView上發佈的輸入。forKeyPath遇到Quartz Composer和MacRuby問題

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

閱讀異常消息:

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上詢問這個問題。

+0

嗨,彼得,謝謝你的迴應。我從macruby開發論壇獲得了一些幫助,並且遇到了錯誤的對象綁定。當我需要綁定QCView(因此是變量名稱)時,我綁定了QCController。我的另一個問題是@。工作的代碼是myQCView.setValue(txt,forKeyPath:「patch.text.value」。 – tsugua 2010-09-22 18:05:00