我有固定数量的文本项,我想用复选框显示以在可可表视图中选择/取消选择。就像 Microsoft MFC 中带有复选框的项目列表框。
如果我将部分标签和复选框放到 TableView 中,它们似乎不属于 tableview。注意:标签用于划分/指定复选框项目的部分。
正确的步骤是什么?
谢谢。
你可以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
方法以显示 prev selected/nonSelected 状态
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];