前言:
与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.csdn.net/download/jueyi1127/10315592