首页 > 代码库 > [Cocoa]_[初级]_[NSTableView--数据操作和表格操作要注意的问题]

[Cocoa]_[初级]_[NSTableView--数据操作和表格操作要注意的问题]

1.首先在MainMenu.lib文件里面创建一个NSTableView,在界面上显示一个表格出来,并对表格进行设置。

2.创建文件TableViewDelegate.h和TableViewDelegate.m(文件内容如下文件所示)。并在MainMenu.lib文件中创建一个Object(从窗口右边选中Object,拉到在Window中的对话框中),命名:TableViewDelegate.

3.设置代理:tableView 进行设置,和图片中的Table View进行连接。

staticField 与窗口中的标签控件进行连接。

把dataSource 和delegate 代理给TableViewDelegate。

(如下图所示)

技术分享


表格数据与定义数据要一致。

每一列的Identifier要与MqjTableData中定义的变量的名称要一样。

如第一列Identifier设置为:phoneID, 在MqjtableData中定义的变量就是NSString *phoneID。

其他列,同理。

技术分享技术分享


MqjTableData.h

#import <Cocoa/Cocoa.h>

@interface MqjTableData : NSObject
{
    NSString *phoneID;
    NSString *phoneName;
    NSString *phoneNumber;
}
@property (readwrite,copy) NSString *phoneID;
@property (readwrite,copy) NSString *phoneName;
@property (readwrite,copy) NSString *phoneNumber;

@end

MqjTableData.m

#import "MqjTableData.h"

@implementation MqjTableData
@synthesize phoneID;
@synthesize phoneName;
@synthesize phoneNumber;

@end


TableViewDelegate.h

#import <Cocoa/Cocoa.h>

@interface TableViewDelegate : NSObject
{
    NSMutableArray *tableDataArray;
    IBOutlet NSTableView *tableView;        IBOutlet NSTextField *staticField; }

@end

TableViewDelegate.m

#import "TableViewDelegate.h"
#import "MqjTableData.h"

@implementation TableViewDelegate

-(id) init
{
    [super init];
    if(self)
    {
        tableDataArray = [NSMutableArray new];
    }
    return self;
}

-(void) awakeFromNib
{
    [self loadTableData];
}
-(void)loadTableData
{
    NSString *name = @"aaaa";
    NSString *number =@"13645897845";
    for (int i = 1; i<= 10; ++i)
    {
        NSAutoreleasePool *pool = [NSAutoreleasePool new];
        MqjTableData *tableData =http://www.mamicode.com/[MqjTableData new];>

技术分享
点击某一行,获取该行的数据,并在标签上进行显示


[Cocoa]_[初级]_[NSTableView--数据操作和表格操作要注意的问题]