具有预设行的静态NSTableView

10

是否可以在Interface Builder中创建一个预设行数的 NSTableView,以便将表格用作表单?

我有一个视图需要各种标签和文本字段的表单。我尝试使用单个标签和文本字段,但效果很差。同样的,使用NSForm也会对布局和单元格内容施加一些限制。

所以,以表格视图的形式出现的表单视图看起来非常精致。我最理想的做法是将七个 TextTableViewCell 拖到IB中的静态 NSTableView 中,并在第一列中设置标签,在第二列的行中动态设置值。

但是如果我这样构建,则我的七行消失了。如何让 NSTableView 行为静态?

1个回答

2
正如@Anc Ainu所指出的,从OS X 10.10开始,可以在OS X中使用静态tableViews。您需要在NSTableView上设置usesStaticContents属性,以使其像iOS上的静态tableView一样运行。根据文档:
静态表不依赖于数据源提供行数。静态表视图的内容在设计时设置,并且可以根据需要进行编程更改。通常,在设置它们之后,您不会更改静态表视图的内容。
在Xcode中,您添加到静态表中的任何行都将保存在相应的nib或storyboard文件中,并在运行时与其余表一起加载。您可以使用insertRowsAtIndexes:withAnimation:方法向静态表视图动态添加表行。在动态添加行时,您的表视图委托必须实现tableView:viewForTableColumn:row:方法,以为任何新行提供相应的视图。您还可以使用removeRowsAtIndexes:withAnimation:方法随时删除行。
请记住,此属性仅适用于OS X 10.10及更高版本。

1
OSX 10.10中的usesStaticContents有什么作用?链接:https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSTableView_Class/#//apple_ref/occ/instp/NSTableView/usesStaticContents - Tancrede Chazallet
你说得完全正确!我之前不知道这个属性。我立刻编辑了我的回答!谢谢! - mangerlahn
4
在IB中创建这些静态视图是否可行? - Duncan Groenewald
2
我有同样的问题,是否可以像iOS静态表格视图一样在界面构建器中布置一组静态视图用于NSTableView? - OliverD

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接