标签: nsarraycontroller

更新绑定到NSArrayController的表列

我对可可的绑定世界相当新,我遇到了一些麻烦(可能/可能是由于误解).

我有一个包含一个名为plugins的NSMutableArray的单例,它包含类Plugin的对象.它有一个名为loadPlugins的方法,它将对象添加到插件数组中.这可以在任何时候调用.它已作为Interface Builder中的实例添加.

IB中还有一个NSObjectController,其内容出口连接到单例.还有一个NSArrayController,其contentArray绑定到NSObjectController(控制器键是'选择',模型键路径是'插件',对象类名称是'插件').

最后我有一个包含2列的表视图,其值使用Plugin类中的属性键绑定到NSArrayController的arrangeObjects.

到目前为止如此标准(至少从教程中可以看出).我的麻烦是,当在单例中调用loadPlugins方法,并且对象被添加到plugins数组时,表不会更新以显示对象(除非在加载nib之前调用loadPlugins).在tableView上调用的-reloadData不执行任何操作.

有没有办法告诉NSArrayController引用的数组是否已更新?我知道NSArrayController有-add:方法,可以在loadPlugins中使用,但这是不可取的,因为我想让单例与显示方面完全分开.

这似乎与: Refresh Cocoa-Binding - NSArrayController - ComboBox有关

这条线:"编辑控制器后面的阵列"似乎也可能找出问题所在,但我希望有可能让单身人士不知道控制器.

提前致谢.

\编辑...

根据TechZen的建议,这是绑定:

TableColumn --('arrangedObjects', 'pluginName', Value)--> NSArrayController
NSArrayController --('selection', 'plugins', ContentArray)--> NSObjectController
NSObjectController --(content)--> PluginsManager
Run Code Online (Sandbox Code Playgroud)

cocoa objective-c nsarraycontroller cocoa-bindings

1
推荐指数
1
解决办法
1479
查看次数

使用Core Data插入和修改实体中的记录

我试图在互联网上找到我的问题的答案,但我不能.我在Core数据中有一个简单的实体,它具有Value属性(即整数)和Date属性.我想在我的.m文件中定义两个方法.

第一种方法是ADD方法.它有两个参数:整数值(由用户在UI中输入)和日期(默认为当前日期).然后根据参数将记录插入实体.

第二种方法就像增量方法.它使用Date作为键来查找记录,然后递增该记录的整数值.

我不知道如何编写这些方法.(假设我们在xib文件中有一个表控制器)

entity core-data insert record nsarraycontroller

0
推荐指数
1
解决办法
7427
查看次数

暂时禁用NSArrayController的filterPredicate,或者咨询ManagedObjectContext?

我有一个 NSArrayController,它绑定到我的托管对象上下文中的一个类。在运行时,NSArrayController 可以应用许多不同的过滤谓词。在某些时间间隔,我想迭代 NSArrayController 的内容,而不管应用于它的过滤谓词如何。

为此,我将 filterPredicate 设置为 nil,然后在迭代数组后恢复它。这似乎有效,但我想知道这是否是最佳实践?我应该手动轮询我的托管对象上下文吗?

NSPredicate *predicate = nil;
predicate = [myArrayController filterPredicate];
[myArrayController setFilterPredicate:nil];
for(MyManagedObject *object in [myArrayController arrangedObjects]) {
    // ...
}
[myArrayController setFilterPredicate:predicate];
Run Code Online (Sandbox Code Playgroud)

cocoa core-data nsarraycontroller

0
推荐指数
1
解决办法
756
查看次数

如何在不阻塞界面的情况下加载NSTableView的数据?

我正在初始化一个简单的接口,NSTableView绑定到一个数组控制器(管理一个字典数组).我想在后台加载数组的内容(这是一个非常耗时的过程),每100或1000个元素更新表视图.我们的想法是界面可用且响应迅速.我无法弄清楚如何在之后触发更新/刷新.桌子仍然是空的.任何人都可以提供指针吗?

我目前的做法是:

// In init for my app controller. This seems to work well, but I've tried other methods here.
[self performSelectorInBackground:@selector(loadTable) withObject:nil];


- (void)loadTable {
  tracks = [[NSMutableArray alloc] initWithCapacity:[masters count]];

  // ... create each object one-by-one. Add it to tracks.
  for (... in ...) {
    [tracks addObject:newObject];
  }

  // Now I don't know what to do next. The table remains empty. 
  // Things I've tried (though possibly not in all combinations with the
  // method above):
  // 1. …
Run Code Online (Sandbox Code Playgroud)

cocoa objective-c nstableview nsarraycontroller

0
推荐指数
1
解决办法
1636
查看次数

将NSTableView和NSArrayController绑定在一起

我有一个由大控制器控制的应用程序.在我的主要窗口中,我有一个按钮,按下时我想打开一个新窗口,数据将被存储到一个窗口中NSTableView.

阅读一些资料后,我发现一些非常有趣和有用之间NSTableViewNSArrayController.

所以,我想知道,如果它可以显示在数据NSTableView通过控制NSArrayControllerNSMutableArray我的控制器编辑.

cocoa controller objective-c nstableview nsarraycontroller

0
推荐指数
1
解决办法
1531
查看次数

得到"valueForUndefinedKey:当使用NSArrayController时,此类不是键值错误的键值编码"

我正在使用Swift为NSCollectionView工作.当我使用NSArrayController对象作为NSCollectionView的内容时.我得到了以下错误:

提出了未被捕获的例外情况

[valueForUndefinedKey:]:此类不是键值plugName的键值编码兼容.

我不知道为什么.我创建了一个名为NHPlug和NSArrayController的模型,如下所示,这是我的代码.:

/* Class NHAppController */
import Cocoa

class NHAppController: NSObject {
    @IBOutlet weak var arrayController: NSArrayController?

    var plugs: NSMutableArray?

    override func awakeFromNib() {
        var t = NHPlug(plugID: 1, plugName: "test")
        plugs = NSMutableArray()
        arrayController?.addObject(t)
    }
}

/* Class NSPlug */
import Cocoa

class NHPlug: NSObject {

    var plugID : Int
    var plugName : String

    init(plugID: Int, plugName: String) {
        self.plugID = plugID
        self.plugName = plugName;
    }

}
Run Code Online (Sandbox Code Playgroud)

如果有人可以帮助,非常感谢!

这里如果崩溃堆栈:

-01-21 19:47:07.347 Notifyhub [58369:598950]一个未被捕获的异常被提出2015-01-21 19:47:07.347 Notifyhub [58369:598950] [valueForUndefinedKey:]:这个类不符合键值编码对于密钥plugName.2015-01-21 …

macos nsarraycontroller swift nsstoryboard

0
推荐指数
1
解决办法
1032
查看次数