vy3*_*y32 5 macos nstableview swift
我正在寻找一种以编程方式在 NSTableView 的第一列中放置复选框的方法。我想在 Swift 中做到这一点。我需要能够读取所有按钮的值并在有人单击该行时设置按钮。
是否有捷径可寻?我找不到它...
您需要表格视图是基于视图的,而不是基于单元格的。恕我直言,最简单的方法是使用界面构建器将复选框放入表视图的第一列。它应该是您的文本字段的兄弟。我假设您希望第一列只包含一个复选框,而没有其他任何内容。在这种情况下,您应该隐藏文本字段,以便它不会干扰复选框(单击文本字段的界面构建器中的“隐藏”复选框)。
方案一:创建一个NSTableCellView的子类,命名为MyTableCellViewWithCheckbox,给它一个@property (nonatomic,strong) NSButton *checkbox;Change the custom class field from NSTableCellView to MyTableCellViewWithCheckbox for the first column并连接outlet。
选项 2:(我还没有测试过,但我认为它应该可以工作。)将复选框的标记设置为 13。稍后要从表视图单元格中检索复选框,您可以使用该viewWithTag方法。
接下来,您需要将一个操作附加到您的复选框,因此您应该IBAction在您的视图控制器上创建一个(而不是在 MyTableCellViewWithCheckbox 上。)在操作方法中,您可以使用 tableviewsrowForView方法来获取用户刚刚点击的复选框的行索引. 新状态可以直接从动作的发送者(它是一个 NSButton)接收。
另外,不要忘记,awakeFromNib如果您有一个表格视图,它可能会在您的视图控制器中被多次调用 - 对于您实例化的每个表格视图单元格一次(这花了我一些时间来弄清楚。)