Objective c 我的第一个Cocoa master详细应用程序:绑定困难
我正在用Cocoa编写我的第一个主细节视图。我的数据模型非常简单:只是一个NSMutableArray,它包含一个具有几个NSStrings属性的类的实例 以下是我迄今为止创造的:Objective c 我的第一个Cocoa master详细应用程序:绑定困难,objective-c,cocoa,nstableview,cocoa-bindings,nsarraycontroller,Objective C,Cocoa,Nstableview,Cocoa Bindings,Nsarraycontroller,我正在用Cocoa编写我的第一个主细节视图。我的数据模型非常简单:只是一个NSMutableArray,它包含一个具有几个NSStrings属性的类的实例 以下是我迄今为止创造的: 表示实例的类 指定为my app委托的属性以保存类实例的NSMutableArray 主详细视图,带有一个NSTable和一些文本字段,用于保存选择实例的属性 NSArrayController,其绑定指定应用程序委托,并将NSMutableArray属性的名称作为模型密钥路径 NSTable列和NSArrayCo
- 表示实例的类
- 指定为my app委托的属性以保存类实例的NSMutableArray
- 主详细视图,带有一个NSTable和一些文本字段,用于保存选择实例的属性
- NSArrayController,其绑定指定应用程序委托,并将NSMutableArray属性的名称作为模型密钥路径
- NSTable列和NSArrayController列之间的绑定(controller key=“arrangedObjects”,每个列的模型键路径=类的一个属性)
- 视图的文本字段和选择之间的绑定(controller key=“selection”,每个文本字段的模型键路径=类的属性)
- 视图中的“+”按钮和“-”按钮可用于添加和删除对象
有什么想法吗?提前感谢。以下是一个与您所需内容相近的示例:
#import "AppDelegate.h"
#import "Members.h"
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
self.theData = [NSMutableArray arrayWithObject:[[Members alloc] init]];
}
-(IBAction)addMember:(id)sender {
[self.controller addObject:[[Members alloc] init]];
}
-(IBAction)removeMember:(id)sender {
[self.controller removeObjectAtArrangedObjectIndex:self.controller.selectionIndex];
}
数组控制器(其IBOutlet为controller)将其内容数组绑定到数据。Members是我的类的名称,它有3个字符串属性:name、author和blurb。在详细视图中,2个文本字段绑定到ArrayController.selection.name或author,就像您所说的那样。另一个属性blurb以相同的方式绑定(ArrayController.selection.blurb),但绑定到文本视图的属性字符串值。这很好,我不确定你的文本视图有什么问题。如果我将文本添加到文本视图中,如果我单击mater表中的另一行,然后单击back(如果我记录了数组,它也会显示在那里),它确实会显示在那里