两个绑定表视图之一未更新其他表中的更改

时间:2011-04-11 04:35:48

标签: cocoa core-data cocoa-bindings nsarraycontroller nstablecolumn

我有一个OS X应用程序,它使用带有两个嵌入式NSTableViews的splitview。更改一个表视图中的值应更改第二个中的相关值,但这不会发生。

它使用数据绑定而不是粘合代码来使用CoreData。有一个 每个TableView的NSArrayController。初始窗口 在第一个(左侧TableView)中提出了预期的数据:

American Travel <-- selected
Browse All
Fiction
Science Fiction

美国旅游书籍的相应数据 出现在第二个(右表TableView),即旅行书籍列表 这是因为第二个控制器内容集设置为:

leftController.selection.books

这意味着我将TableColumns绑定到正确的数据。 我没有看到任何与此问题相关的警告 无法更新新的第二个TableView 在第一个TableView中选择。我相信观察者是 由系统自动设置,观察变化 在Left ArrayController中选择。

在两个ArrayController的属性检查器中,选中的是:

Avoid Empty Selection
Preserve Selection
Select Inserted Objects
Auto Rearrange Content

RightController的单个TableColumn的值绑定 - bookList

Bind to : RightController
Controller Key : arranged Objects
ModelKey Path : name

我的问题:

我遇到的问题是右/秒/ book_names中的数据 当我更改left / first / book-types中的选择时不会改变 TableView中。我在哪里解决这个问题。我知道这是非常的 小,像一个复选框。我根本找不到它!

/// Begin Category.h
@class Book;

@interface Category : NSManagedObject {
}
@property (nonatomic, retain) NSSet * books;
@property (nonatomic, retain) NSString * name;// name of book_category

......

更多信息已添加4/13/2011

I have added a button which is connected an action in the

LeftArrayController(Category) namely, selectNext: . When I click 

the button, the selection in the CATEGORY TableView does not

visibly change, but the TableView on the right (Books) does change, 

as the list of books on the Right continually changes. 

If I click the TableView with the mouse, no selection change is done 

either in effect on the RightTableView or in the visible

sense on the Left TableView. Why is the mouseClick not effecting a 

visible change int the TableViewColumn? That is, why is the mouse 

unable to change selection, whereas the button is able to. 

There is only one column in the TableView. In Attributes Inspector I have

tried all combination of Empty,Column and Type Select for this single selection

Table. Is there no way around using NSTableView Delegate methods to set selection?

1 个答案:

答案 0 :(得分:0)

这是用户错误的一个案例。我的DataModel中有错误。实体有关系 作为类NSSet *属性的替身。其中一个关系被设定为 1比1,需要1比1。这两张桌子现在正在工作!! 非常感谢那些读这个的人。我知道我犯了一些愚蠢的错误, 当我没有收到任何评论。我希望这有助于将来的某个人。

标记