0

创建具有固定数量复选框的单列表格视图的正确步骤是什么。例如,该列可能具有以下内容(X 表示复选框已选中,_ 表示复选框未选中。我还希望同一列中的文本标题。):

标题一:

X 项目 1

_ 项目 2

X 项目 3

X 项目 4

标题二:

X 项目 5

_ 项目 6

如果可能的话,我更喜欢使用 Cocoa 绑定来做到这一点。此外,我需要知道如何获取用户选中或取消选中的任何项目的开/关选中状态。我需要知道如何将复选框的标题文本设置为“项目 1”、“项目 2”等。

我想要做的是使用 tableview 创建一个带有复选框的项目列表框,就像可以在 Microsoft MFC 中完成的那样。由于我对 Cocoa 和 Objective-C 很陌生,请在代码解释和描述 IB 步骤中明确说明。

谢谢。

4

2 回答 2

1

好的,我已经为您制作了这个项目,并在截屏视频中记录了我是如何制作的。
一切都如此滞后,只是因为我的 2008 年旧 MacBook 的截屏太难了

项目:下载
截屏:下载

于 2013-06-16T06:13:42.073 回答
0

我是从 iPad 上写的,很抱歉有任何错误,我无法测试代码
1) 在 IB 中放置一个 nstableview,使其成为检查器中的 1 列,使其基于视图,将列命名为 MainCoumn。将复选框放在 tableviewcell 中。
2)选择你的表视图,在检查器中打开第四个选项卡,并将委托和数据源与 AppDelegate 连接。
3)在你的 AppDelegate.h 添加这个:

<NSTableViewDelegate, NSTableViewDataSource>  

之后:NSObject

4)在你的 AppDelegate.m 添加这个:

- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {

NSTableCellView *cellView = [tableView makeViewWithIdentifier:tableColumn.identifier owner:self];
if( [tableColumn.identifier isEqualToString:@"MainColumn"] )
{
    NSArray *subviews = cellView.subviews;
    NSButton *checkbox = [subviews objectAtIndex:1];
    cellView.textField.stringValue = @"checkbox";
   //  [checkbox state];  - check is it checked
  //   [checkbox setState:0];  - 0 is to set it unchecked, 1- checked. 
    // if you need to make the second one checked, other - unchecked:
   if (row == 1) {
    [checkbox setState:1];
    } else {
     [checkbox setState:0]; 
    }
    return cellView;
}
return cellView;    
}

- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView {
return 6 
   // here you type the number of rows
}

5) 利润111

于 2013-06-15T14:47:06.573 回答