我想要显示固定数量的文本项目,并在cocoa tableview中选中/取消选择复选框。完全类似于Microsoft MFC中具有复选框的项目列表框。
如果我将部分标签和复选框放入TableView,它们似乎不属于tableview。注意:标签用于划分/指定复选框项的部分。
正确的步骤是什么?
感谢。
答案 0 :(得分:0)
您可以制作CustomCell
课程:选择NSTextField
和NSButton
(选中复选框) -
在IB中设置UIButton状态:
for default state - set non selected image.
for selected state - set selected image.
在CustomCell.m文件中
-(void)setSelected:(BOOL)selected
{
[checkBoxBTN setSelected:selected];
}
您也可以在
cellForRowAtIndex
课程的tableView
方法中执行此操作。 您的表数据源应该是ModelClass
或具有两个键的字典,如标题及其状态(选中/非选定)。 在didSelectAtIndexPath
方法中,您需要更新字典,如:
NSMutableDictionary * dic = [yourDataSourceArray objectAtIndex:indexPath.row];
NSNumber *state = [dic valueForKey:@"state"];
[dic setValue:![state boolValue]];
您需要修改
cellForRowAtIndexPath
方法以显示上次选择/未选择状态
NSMutableDictionary * dic = [yourDataSourceArray objectAtIndex:indexPath.row];
NSNumber *state = [dic valueForKey:@"state"];
cell.title = [dic valueForKey:@"title"];
[cell.checkBoxBtn setSelected:[state boolValue]];
编辑 要创建标签:
NSTextField *textField = [[NSTextField alloc] initWithFrame:NSMakeRect(10, 10, 200, 17)];
[textField setStringValue:@"My Label"];
[textField setBezeled:NO];
[textField setDrawsBackground:NO];
[textField setEditable:NO];
[textField setSelectable:NO];
[cell addSubview:textField];