一步一步熟悉Mac app开发(三)之NSTableView

概要

本文共分为两个阶段。(在阶段二中详细演示了“拖拽大法”)

第一个阶段完成NSCollectionView与数据的绑定,其效果如下:


image.png

第二阶段实现,对已有数据进行增加,其效果如下:


image.png

阶段一

1.新建项目,拖拽table view至默认的view controller中。


image.png

2.设置table view的行数为1。


image.png

3.设置table view的dataSource为view controller。


image.png

4.在ViewController.h中添加"NSTableViewDataSource"协议,并且定义一个NSMutableArray指针变量books。


image.png

5.在ViewController.m中初始化books,向books中插入数据,实现两个协议方法。

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    
    //初始化books。
    _books = [[NSMutableArray alloc] initWithCapacity:32];
    
    //向books中添加数据。
    [_books addObject:@"《C语言程序设计》"];
    [_books addObject:@"《C陷阱与缺陷》"];
    [_books addObject:@"《C语言深度剖析》"];
    [_books addObject:@"《C专家编程》"];
    [_books addObject:@"《C和指针》"];
}

//返回行数。
- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView{
    return [_books count];
}

//返回每行数据
- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row{
    //table view只有1列,直接返回每行数据。
    return _books[row];
}

6.将table view cell与books绑定起来。


image.png

7.阶段一完成,效果图如下:


image.png

阶段二

1.在默认的view controller中添加Text Field和Push Button。


image.png

2.将Text Filed、Table View拖拽大法至ViewController.h中,将Push Button拖拽大法至ViewController.m中。


image.png
image.png
//ViewController.h 生成代码如下:
@property (weak) IBOutlet NSTextField *textField_new_book_name;
@property (weak) IBOutlet NSTableView *tableview_book_list;
//ViewController.m 生成代码如下:
- (IBAction)btn_add_new_book:(id)sender {
    
    //将新的书名插入至_books数组里。
    NSString *tmpNewBookName = _textField_new_book_name.stringValue;
    [_books addObject:tmpNewBookName];
    
    //重新加载数据
    [_tableview_book_list reloadData];
    
    //清空文本框
    _textField_new_book_name.stringValue=@"";
}

3.阶段二完成,效果如下:


image.png

结语与复习

增加都会了,你还让我给你演示删除?给我打赏完自己去实现吧!
(更多关于TableView的用法详见:一步一步熟悉Mac app开发(十)之Cocoa Binding

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,053评论 3 119
  • 姓名 潘艳 企业名称 青柠养车 组别 271期谦虚1组 【日精进打卡第47天】 【经典名句分享】 作为人,何为正确...
    潘潘_8030阅读 1,225评论 0 0
  • 著名诗人约翰·唐曾说:“没有别人,你即是一座孤岛。” 1、现实生活中却有这样一类人,他们虽然具备与人交往的能力,但...
    阳阳范儿阅读 3,770评论 0 1

友情链接更多精彩内容