在读本篇文章之前,推荐先看看Mac开发 – Table View(1)和Mac开发 – Table View(2),前两篇文章分别讲解了TableView的一些基本功能和绑定方法,当只有一列的时候,我们可以通过ArrayController的方法绑定,当有两列的时候,我们可以通过Dictionary的方法绑定,但是有多列的时候,我们并不好绑定,现在我就来说说用对象和ArrayController的方法绑定,同时,我们这次实现的程序要复杂一点。

这个程序很简单,我们需要的是点击Add new添加一行,点击Delete删除一行,首先我们先使用Interface Builder创建一个这样的窗体,创建完成后我们可以开始写我们的类。
创建一个People的类然后编写如下代码,以下是头文件代码。
@interface People : NSObject {
NSString
NSString *infor;
}
@property (readwrite, copy) NSString
*personName;@property (readwrite, copy) NSString *infor;
@end
头文件代码写完之后我们就要实现这个代码,实现的代码如下所示。
@implementation People
-(id)init{
[super init];
personName = @"GuoJing";
infor = @"I’m a programmer";
return self;
} -(void)dealloc
{
[personName release];
[infor release];
[super dealloc];
}
@synthesize personName;
@synthesize infor;
@end
好了,我们的People类实现了之后,我们就要为我们的应用程序创建一个Controller,新建一个类并命名叫Controller,然后在Interface Builder里面拖动一个Object控件到xib窗体中。

拖动完成之后,我们同样要更改这个Object绑定到Controller类,如下图。

更改完成后,我们需要实现Controller,头文件代码如下。
@interface Controller : NSObject {
IBOutlet NSMutableArray *persons;
IBOutlet NSButton *addButton;
IBOutlet NSButton *delButton;
}
@property (nonatomic,retain) IBOutlet NSMutableArray
*persons;@property (nonatomic,retain) IBOutlet NSButton *addButton;
@property (nonatomic,retain) IBOutlet NSButton *delButton; -(void)setPersions:(NSMutableArray *)a;
@end
同样实现代码如下。
#import "People.h"
@implementation Controller
-(id)init{
[super init];
persons = [[NSMutableArray alloc] init];
return self;
} -(void)dealloc
{
[self setPersions:nil];
[super dealloc];
} -(void)setPersions:(NSMutableArray *)a
{
if(a==persons)
return;
[a retain];
[persons release];
persons = a;
}
@synthesize persons;
@synthesize addButton;
@synthesize delButton;
@end
好了,我们写完代码之后,我们就需要更改ArrayController的属性了,我们的ArrayController应该绑定的是People类,我们点击ArrayController然后更改属性如下。

类绑定完之后我们还需要绑定相应的数组字段,前面的代码我们写了一个数组,这里还要设置如何绑定这个数组,如下图。

这里我们绑定的是Controller类下的persons,这样这个ArrayController的绑定设置就完成了。完成之后,我们还需要绑定到相应的TableView的列上面,我们可以按照如下方式绑定。
首先我们先选中一个列,记住是如下图的一个列,TableView控件包含很多控件,我们只需要选择其中的列,选中之后,我们在属性中选择绑定。

如上图,我们绑定了ArrayController并且将这一列选择了personName,同理我们还需要绑定剩下的一列,绑定之后就完成了绑定。(同前面的方法绑定)
绑定完成之后,我们就需要给add和delete按钮添加事件了,这里最简单的事件添加方法就是直接绑定add和delete按钮到ArrayController中的add和delete方法。我们只需要Control+鼠标把ArrayController的add方法拖动到按钮上即可绑定,绑定后如下图。

现在我们就完成了一个比较复杂的TableView的操作了。
总结一下,首先我们先编写每个TableView的对象(即Person),编写完成后更改ArrayController的绑定,绑定到Person,并更改相应的Controller数组的绑定(这样就知道如何绑定和绑定到哪),最后绑定相应的操作方法,如add,delete等。
[...] Mac开发 – Table View(3) [...]