読み込んでいます...

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

这个程序很简单,我们需要的是点击Add new添加一行,点击Delete删除一行,首先我们先使用Interface Builder创建一个这样的窗体,创建完成后我们可以开始写我们的类。

创建一个People的类然后编写如下代码,以下是头文件代码。

#import <Cocoa/Cocoa.h>

@interface People : NSObject {
    NSString *personName;
    NSString
*infor;
}

@property (readwrite, copy) NSString *personName;
@property (readwrite, copy) NSString
*infor;

@end

头文件代码写完之后我们就要实现这个代码,实现的代码如下所示。

#import "People.h"

@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,头文件代码如下。

#import <Cocoa/Cocoa.h>

@interface Controller : NSObject {
    //定义NSMutableArray用来绑定
    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 "Controller.h"
#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等。

584路过 1评论 Mac开发 阅读全文..

:-D :-? 8) :cry: 8-O :lol: :-x :-| :?: :-P :oops: :roll: :( :) :-o :wink: more »