Mac开发入门及NSTableView的使用(一)

本文详细介绍如何在Mac OS X应用中使用NSTableView,包括项目创建、NSViewController配置、NSTableView设置及数据绑定等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:

与iPhone开发不同,mac开发的类大都以NS开头,使用方法有不同之处。

本文涉及项目创建,NSViewController,NSTableView,window的使用。

文章后附demo。

1 创建项目,xcode菜单 File/New/Project




2 创建NSViewController,右键New File




4 选中xib文件,添加NSTableView控件



4 tableview代理,tableview绑定到controller上,tableview两列改为一列。



5 NSTableCellView的使用,设置identify。


- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView
{
    return self.dataArray.count;
}
- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
{
    NSTableCellView *cellView = [tableView makeViewWithIdentifier:@"customCellView" owner:self];
    FirstModel *model = self.dataArray[row];
   // cellView.imageView.image = [NSImage imageNamed:@""]; //设置图片
    cellView.textField.stringValue = model.content;        //设置文字
    return cellView;
}

6 去掉header


6 tableview数据绑定

- (void)initData{
    FirstModel *model1 = [[FirstModel alloc] initWithTitle:@"控件1:" content:@"lable"];
    FirstModel *model2 = [[FirstModel alloc] initWithTitle:@"控件1:" content:@"lable"];
    FirstModel *model3 = [[FirstModel alloc] initWithTitle:@"控件1:" content:@"lable"];
    FirstModel *model4 = [[FirstModel alloc] initWithTitle:@"控件1:" content:@"lable"];
    FirstModel *model5 = [[FirstModel alloc] initWithTitle:@"控件1:" content:@"lable"];
    
    self.dataArray = [NSMutableArray arrayWithCapacity:0];
    [self.dataArray addObject:model1];
    [self.dataArray addObject:model2];
    [self.dataArray addObject:model3];
    [self.dataArray addObject:model4];
    [self.dataArray addObject:model5];
    
    [self.tableview reloadData];
}

7 都设置了,运行没效果?别急,还没设置到主window上。在AppDelegate.m里面设置下。


8 run运行下 ,效果如下。


#import "FirstModel.h"
@interface FirstViewController ()<NSTableViewDelegate,NSTableViewDataSource>

@property (nonatomic,strong) NSMutableArray *dataArray;
@property (weak) IBOutlet NSTableView *tableview;

@end

@implementation FirstViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do view setup here.
    
    [self initData];
   
}
#pragma mark - initData
- (void)initData{
    FirstModel *model1 = [[FirstModel alloc] initWithTitle:@"控件1:" content:@"lable"];
    FirstModel *model2 = [[FirstModel alloc] initWithTitle:@"控件1:" content:@"lable"];
    FirstModel *model3 = [[FirstModel alloc] initWithTitle:@"控件1:" content:@"lable"];
    FirstModel *model4 = [[FirstModel alloc] initWithTitle:@"控件1:" content:@"lable"];
    FirstModel *model5 = [[FirstModel alloc] initWithTitle:@"控件1:" content:@"lable"];
    
    self.dataArray = [NSMutableArray arrayWithCapacity:0];
    [self.dataArray addObject:model1];
    [self.dataArray addObject:model2];
    [self.dataArray addObject:model3];
    [self.dataArray addObject:model4];
    [self.dataArray addObject:model5];
    
    [self.tableview reloadData];
}

#pragma mark - NSTableViewDataSource
- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView
{
    return self.dataArray.count;
}
- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
{
    NSTableCellView *cellView = [tableView makeViewWithIdentifier:@"customCellView" owner:self];
    FirstModel *model = self.dataArray[row];
   // cellView.imageView.image = [NSImage imageNamed:@""]; //设置图片
    cellView.textField.stringValue = model.content;        //设置文字
    return cellView;
}

demo下载地址:https://download.youkuaiyun.com/download/jueyi1127/10315592

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值