Object-C NSTableView的view-base形式的简单使用

1. 环境

Mac OSX 10.10.5 + Xcode 7.2.1

2. 创建工程

3. 控件设置

a. 拖动一个TableView控件和一个Button控件到View Controller.
b. 设置TableView为view-base形式,并设置显示为两列,网格设为实线。

c. 设置TableView的一列的Title和Identifier为Name,一列Title和Identifier为Phone。

 Identifier是唯一的。

4. 创建一个类TableViewData

用于操作TableView显示的数据,TableView的DataSource和AppDelegate绑定到TableViewData类。

5. TableViewData相关的设置

a. 增加一个Object实体,Class设置为TableViewData方便绑定TableView。

b. 绑定TableView的DataSource和AppDelegate到Object。

c. TableView和Button添加到Class TableViewData。

TableView:

Button:

d. 设置完成后,object的属性。

6. 实现NSTableView方法。

1.  - (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView

2. - (NSView *)tableView:(NSTableView *)tableView

   viewForTableColumn:(NSTableColumn *)tableColumn

                  row:(NSInteger)row;

 

 TableViewData.h :
#import <Foundation/Foundation.h>
#import <Cocoa/Cocoa.h>

@interface TableViewData : NSObject

@property (weak) IBOutlet NSTableView *tableView;

@property NSMutableArray *rowData;


@end
TableViewData.m :
#import "TableViewData.h"

@implementation TableViewData

- (id)init {
    self = [super init];
    if (self) {
        // Initialize self.
        self.rowData = [[NSMutableArray alloc] init];
    }
    return self;
}


- (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView{
    return self.rowData.count;
}

- (NSView *)tableView:(NSTableView *)tableView
   viewForTableColumn:(NSTableColumn *)tableColumn
                  row:(NSInteger)row{
    NSString *identifier = [tableColumn identifier];
    NSDictionary *dict = [self.rowData objectAtIndex:row];
    NSString *value = [dict objectForKey:identifier];
    if (value) {
        NSTableCellView *column = [tableView makeViewWithIdentifier:identifier owner:self];
        column.textField.stringValue = value;
        return column;
    }
    return nil;
}


- (IBAction)clickButtonToUpdateTableView:(id)sender {
    NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys:@"John",@"Name",@"123456",@"Phone", nil];
    [self.rowData addObject:dict];
    [self.tableView reloadData];
}



@end

 

代码:github

 

 

 

转载于:https://www.cnblogs.com/v-BigdoG-v/p/7503700.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值