cocoa:如何使用复选框和标签创建单列表视图

时间:2013-06-08 06:24:48

标签: xcode cocoa checkbox label tableview

我想要显示固定数量的文本项目,并在cocoa tableview中选中/取消选择复选框。完全类似于Microsoft MFC中具有复选框的项目列表框。

如果我将部分标签和复选框放入TableView,它们似乎不属于tableview。注意:标签用于划分/指定复选框项的部分。

正确的步骤是什么?

感谢。

1 个答案:

答案 0 :(得分:0)

您可以制作CustomCell课程:选择NSTextFieldNSButton(选中复选框) -

  

在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];