我對自定義視圖的綁定屬性有問題。該屬性綁定到核心數據實體的NSArrayController。將NSArrayController綁定回ivar的問題
問題出在這裏:
在我看來,我畫了幾個矩形。這些矩形的位置保存在覈心數據的實體中(如NSValue包裝的NSRects)。矩形是可拖動的,當我拖動一個矩形時,我希望實體更新到新的位置。 但我找不出如何將arrayController綁定回視圖。
這裏就是一切是如何連接:
我有網點的觀點和arrayController一個windowController。
arrayController綁定到windowController的managedObjectContext,因此綁定到我的核心數據模型。 (即結合和該實體的結合建立在界面生成器)
視圖綁定到arrayController與上結合是建立在使用windowController一個實例變量「rectangleValuesArray」
:
[connectionsView bind:@"rectangleValuesArray"
toObject:elementsArrayController
withKeyPath:@"arrangedObjects.rectangleValue"
options:nil];
到目前爲止工作。
現在我試圖建立綁定在向另一個方向:
[elementsArrayController bind:@"arrangedObjects.rectangleValue"
toObject:connectionsView
withKeyPath:@"rectangleValuesArray"
options:nil];
現在,當我改變我的伊娃,實體應該更新(右?)。 但是,這並不工作 - 我得到的是從控制檯:
Cocoa Bindings: Error setting value for bound property arrangedObjects.rectangleValue of object <NSArrayController: 0x200027100>[entity: Element, number of selected objects: 1]: [<NSArrayController 0x200027100> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key arrangedObjects.rectangleValue.
什麼我收到錯在這裏?請有人幫忙?
西蒙
嗯,首先,非常感謝! 那麼你的意思是說,我爲我的對象創建了一個模型類,並將它添加爲我的核心數據實體的屬性? 我該怎麼做關於該實體的關係?我是否應該在模型類中實現它們? 我在這裏想要做的是創建類似OmniGraffle的東西。我想在IB中創建綁定,但我無法弄清楚 - 這是我繪製矩形的自定義視圖(當然,它們是小文本「窗口」)。他們不在IB ...... 或者將所有東西都與視圖的出口綁定在一起? – Simon 2010-08-22 12:59:14
對於核心數據,您的模型對象類應該是NSManagedObject的子類,並且應該是實體本身的類。您可以在託管對象模型中設置它。要在IB中公開綁定,您需要編寫一個包含您的視圖的IB插件。綁定和插座不相關。 – 2010-08-22 14:04:29
哦。事實上,我已經有了這個模型對象類......我做了一個數組,而不是每個屬性的數組 - 你怎麼能看到我有更多的數組而不是矩形值數組?無論如何。它現在有效!謝謝! – Simon 2010-08-22 16:43:18