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我。