我已经在SO上查看了使用键值观察的示例NSArray(或者NSMutableArray),显然你需要使用NSArrayController(不像KVO我不熟悉的),但我没有找到如何执行此操作的具体示例.有人可以解释一些示例代码吗?
例如,如果我有一个GameModel代表其播放器名称NSArray (playerNameArray)的a NSStrings.我想观察那些字符串(视图控制器观察模型的数据)来更新视图中的各种内容.
如何获得播放器名称数组已更改的通知?
编辑:iOS SDK甚至支持NSArrayController吗?如果没有,还有另一种方式吗?
iphone objective-c key-value-observing nsarray nsarraycontroller
我想要完成的事情似乎应该相当简单.我在这里放了一个示例项目.
我有一个NSArrayController充满了NSDictionaries数组.
[[self controller] addObject:@{ @"name" : @"itemA", @"part" : @"partA" }];
[[self controller] addObject:@{ @"name" : @"itemB", @"part" : @"partB" }];
[[self controller] addObject:@{ @"name" : @"itemC", @"part" : @"partC" }];
Run Code Online (Sandbox Code Playgroud)
我正在使用'name'键来填充NSPopupButton以及此数组中的项目.使用以下绑定可以轻松完成此操作

然后,我想根据NSPopupButton的当前选择,使用'part'键中的文本填充NSTextField.我已经设置了以下绑定:

仅使用这些绑定,文本字段就会显示"partC".

但是,如果我更改NSPopupMenu的值,文本字段显示的内容不会更改.
我认为这只是在NSPopupButton上设置'Selected Object'绑定的问题

但那不起作用.我最终得到了菜单中的代理对象,原因有些奇怪(提供原因可能是奖金).

那么,我需要做些什么来使这项工作?
我正在努力改进我的KVC/KVO/Cocoa-Bindings-fu,并想知道继承NSArrayController的原因是什么?
为什么没有适用于iPhone的NSArrayController?iPhone上会有一个NSArrayController吗?
我有一个NSArrayController和一个NSTableView.他们从iTunes中显示曲目.我可以通过单击标题对列表进行排序.
有没有办法为表视图设置默认排序描述符,以便每次用户启动应用程序时对相册进行排序?
我试图在数组控制器和表视图上设置sortDescriptor,但这没有任何改变.
谢谢
编辑:答案是对的.但它需要一个NSArray:
- (NSArray *)mainSortDescriptor {
return [NSArray arrayWithObjects:
[NSSortDescriptor sortDescriptorWithKey:@"album" ascending:YES],
[NSSortDescriptor sortDescriptorWithKey:@"trackNumber" ascending:YES],
nil];
Run Code Online (Sandbox Code Playgroud)
}
我希望用适当的条款表达自己.
我有三个实体:客户,国家,州.与国家和状态,有两种关系.所以我可以创建一些国家并选择其中一个我可以创建属于它的一些州.
为了创建实体"客户"的界面,我把三个NSPopUpButton's:
我的问题是我无法通过所选NSPopUpButton实体"客户" 传递数据.NSPopoUpButton通过绑定工作:
我该怎么做才能确保三者选择的数据NSPopUpButton's记录在实体"客户"的相应字段中?
我有一个使用故事板的基于Mac文档的核心数据应用程序.故事板具有以下布局:
Window Controller
Split View Controller
Table View Controller
Text View Controller
Run Code Online (Sandbox Code Playgroud)
My Core Data模型包含一个Chapter实体,它包含两个属性:title和contents.我希望表视图显示每个章节标题.文本视图显示所选章节的内容.
如果我使用的是xib文件,我会在xib文件中添加一个数组控制器.我将数组控制器绑定到File的所有者以访问我的NSPersistentDocument子类.我将表视图绑定到数组控制器的arrangeObjects属性,并将文本视图绑定到数组控制器的选择.
但随着故事板,事情变得更加复杂.我可以向表视图控制器添加一个数组控制器,将表视图绑定到数组控制器,并在表视图中显示章节标题.但是文本视图控制器无法绑定到该阵列控制器,因为阵列控制器位于另一个场景中.
如何在Interface Builder中添加数组控制器,以便表视图控制器和文本视图控制器都可以访问它并绑定到它?
我有一个基于NSTableView的视图.一个阵列控制器.
将tableview的内容设置为数组控制器的arrangeObjects.将数组控制器的内容设置为自定义对象的NSMutableArray.
使用Controller键将表单元格视图的NSTextField值绑定到数组控制器:arrangeObjects和Model键路径:name
程序运行时,行数是否正确,排列对象中的内容是否正确但文本字符串的字符串不会更改?尝试绑定文本字段和文本字段单元格.
这是一个例子:有人请告诉我我做错了什么. https://dl.dropboxusercontent.com/u/29574/random/nsarraycontroller%20viewbased%20tableview.zip
如何将NSArrayController的内容绑定到有序多对多关系中的实体?
我的Core Data模型中有一个无序的to-many关系,以及一个NSArrayController,其内容集与父实体的关系绑定.这很好用,可以从NSArrayController访问数据,没问题.
我在开发期间决定允许用户手动重新排序这些子对象,因此我将关系更改为有序关系.现在,当我的笔尖创建我的NSArrayController时,会出现以下错误:
Cannot create NSSet from object Relationship '...' fault on managed object ... of class _NSFaultingMutableOrderedSet
Run Code Online (Sandbox Code Playgroud)
实际上,我认为这一切都是有道理的:这是一个有序的关系,所以现在我得到一个有序的集合.将它绑定到Content Array也是不合适的,因为它现在是NSOrderedSet,而不是数组.我的问题是:现在如何将此关系的数据绑定回NSArrayController?
我正在尝试创建一个NSTableView使用NSArrayController和可可绑定的分段.我正在寻找类似于NSFetchedResultsControlleriOS 的类似方法,您可以在其中设置部分键路径.我想做类似的东西NSArrayController.
我举个例子:我有不同的任务.每项任务都有三个不同的优先级之一,低,中或高.任务还具有标题,描述,日期等属性.我想按优先级划分或分组任务(此处的部分键路径是优先级).
你可以用绑定来解决这个问题NSArrayController吗?我需要多个NSArrayController还是只需一个?