如何在NSTableView中的NSComboBoxCell添加值
注意:在NSTableView中的NSComboBoxCell,每行中的该列是共享的,所以我们只需要对该列数据添加一次数据即可。
第一种做法 Interface-Builder直接刚,
注意 取消勾选 Uses Data Source
第二种做法,使用 Value Selection
注意选择Content Views
self.comboBoxData就是你的AppDelegate中定义的一个属性咯。
// 下拉框数据
@property (nonatomic,strong) NSArray* ComboBoxCellData;
// 初始化下拉框数据
self.comboBoxCellData = @[@"text",@"textarea",@"password",@"datetime"];
第三种做法,使用直接添加
注意使用Interface-Builder将元素拖拽到代码里做个Outlet
- 打开你的XIB文件
- 选择双环
- 将ComboBoxCell直接拖拽到你的AppDelegate属性区
注意别弄错了,要弄Cell不是Column,之后你就可以直接添加数据给它了
例如:
[self.comboBoxCell addItemsWithObjectValues:@[@"text",@"textarea",@"password",@"datetime",@"hidden"]];
第四种做法,使用NSComboBoxCellDataSource
开启元素的Uses Data Source哦别忘了!
这里说一下,XCode可以两种方式实现dataSource
代码设置dataSource
// 设置下拉框数据源 [self.comboBoxCell setDataSource:self];
- Interface-Builder拖拽实现dataSource
设置好dataSource,然后在代码里实现NSComboBoxDataSource协议,例如:
@interface AppDelegate () <NSComboBoxCellDataSource>
设置数据
@property (nonatomic,strong) NSArray* comboBoxCellData;
// ...
self.comboBoxCellData = @[@"text",@"textarea",@"password",@"datetime",@"hidden"];
并实现以下接口,两个啊
#pragma mark -
#pragma mark ***** 表格下拉框的数据源 *****
// 填充下拉框数据大小
-(NSInteger)numberOfItemsInComboBoxCell:(NSComboBoxCell *)comboBoxCell{
return [self.comboBoxCellData count];
}
// 获取下拉框数据
-(id)comboBoxCell:(NSComboBoxCell *)comboBoxCell objectValueForItemAtIndex:(NSInteger)index{
return [self.comboBoxCellData objectAtIndex:index];
}
然后就OK了
其他
如你所见我成功的设置了,很逼性是吧!当然了这个工具自己用啊
废话不多说~当然了,愿意用哪种都行,哈哈操