从表视图更新选定的核心数据对象

时间:2013-07-02 20:35:39

标签: objective-c xcode core-data cocoa-bindings

我打了一个砖墙,我正在寻找一些我正在尝试组合的Cocoa OSX应用程序的帮助。

我在核心数据中只有一个实体,它是从网络中提取的字典中填充的。然后使用绑定和数组控制器在TableView中显示核心数据对象。

现在,我希望能够检测表中的选定对象,然后在GUI中按下按钮以更新所选实体的特定属性。

这是我打砖墙的地方,有很多关于如何使用谓词拉取/更新对象的信息,还有很多关于如何直接绑定到阵列控制器以添加/删除/删除的信息。但没有关于如何使用存储在代码中的值更新隐藏属性。

非常感谢任何帮助/指针,特别是如果它是OSX而不是iOS导向!

由于

加雷

1 个答案:

答案 0 :(得分:0)

实际上我设法解决了这个问题。

首先,我实现了一个从数组控制器获取当前所选对象并返回它的函数。

-(Tweet*)getCurrentSelectedTweet {
    if ([[self.twitterClientsController selectedObjects] count] > 0) {
        return [[self.twitterClientsController selectedObjects] objectAtIndex: 0];
    } else {
        return nil;
   }
}

然后我使用绑定到IBAction的这个函数来调用它并修改对象:

- (IBAction)approveTweet:(id)sender {
    Tweet *selectedTweet = [self getCurrentSelectedTweet];
    if (selectedTweet) {
        selectedTweet.approved = [NSNumber numberWithBool:TRUE];
        NSLog(@"%@", selectedTweet);
    }
}