Swift,Xcode 8.1,NSTableView,绑定和数组控制器
从iOS开发转向macOS开发时,您理所当然的一件事就是iOS中的表格清晰明了。 UITableViews真正构成了许多iOS体验的骨干-明确定义了与它们的交互,并且对其进行了很好的记录和教导。
macOS和NSTableViews并非如此! 最初,我的印象是,就像在iOS上一样,将只有一种“正确”的方式来制作表格。 但是,在代码内实现和绑定之间,我感到困惑和迷茫。
这篇文章将通过使用绑定对NSTableView进行非常基本的设置。 有很多注释和屏幕截图,特别是因为要管理的屏幕太多….好吧,让我们深入研究!
第1步:准备数据模型
这里没有超级幻想。 让我们从PONSO开始。
类SomeDoctor:NSObject {
var variable1:Int = 0
var variable2:Int = 0
var variable3:Int = 0
}
在上面,我们要做的就是创建一个NSObject并实例化一些变量。 请注意这些变量名,因为稍后我们将直接绑定它们(按名称)!
第2步:设置您的NSViewController
再次,这里没有幻想。 让我们创建典型的NSViewController,但是这次要注意创建一个动态类型的数组,如下所示:
类SimultaneousSummaryViewController:NSViewController {
...
@IBOutlet var arrayController:NSArrayController!
动态var临床医生= [SomeDoctor]()
...
}
“动态”在这里只是意味着编译器将退出并寻找合适的Objective-C编译器来实现。 您可以在此处阅读有关该想法的更多信息。
当我们在这里时,我们还创建了一个NSArrayController引用-这是可选的! 我们严格不需要任何东西,但是制作完成后,您可能会感到不舒服。
步骤3:建立您的NSArrayController
找到您的NSArrayController对象,然后将其拖放到情节提要或xib文件中的NSViewController中。
步骤4:绑定,绑定,绑定!
突出显示您刚刚创建的NSArraryController。
展开右侧面板,然后选择“绑定”选项卡
展开后,请尝试使以下参数与您所拥有的匹配。
在上面,我们所做的是将NSArrayController绑定到NSViewController(明确地)。 现在,我们还将其绑定到我们先前定义的变量,并使该变量可用。
步骤5:绑定您的NSTableView
我们到家了! 将NSTableView拖放到情节提要/ xib文件中。
您可以根据需要配置它,但是我想通过绑定进行说明。 选择如下的表格视图
现在转到右侧面板,然后再次选择绑定选项卡。 大约在中途,您将看到“表内容”部分。 在下面使其匹配。
因此,在这一点上,我们尚未编写任何代码。 通过绑定到NSArrayController,我们通常不会设置为开始表示单元格。
第6步:首页拉伸-将文本视图绑定到NSArrayController
与iOS相似,macOS NSTableViews中的单元格也具有文本字段。 现在,我们需要将单个NSTextField数据绑定到NSArrayController引用。
首先,如下所示深入到文本单元格本身:
现在,在绑定右侧面板中,展开“值”部分,如下所示。
因此,在这一点上,我们要做的是使用objectValue作为对原始SomeDoctor对象的引用,并按名称调用variable1! 因此,为什么命名如此重要。
鳍
等-就是这样。 在6个步骤中,我们简单地使用数组和NSArrayController并用数据填充了NSTableView。 我们免除了编写一堆胶水代码的麻烦,现在,我们已经内置了视图可以直接与“ clinicians”数组中的数据层容器进行交互的功能。 是的-您甚至可以编写值并将其反映在对象中。
当然,绑定还有其他配置,我本人甚至还没有开始深入研究这个概念(因为作为iOS开发人员,这些绑定闻起来像伏都教徒)。
有什么问题吗 注释? 请在此处或在jamesktan@gmail.com上ping我。