3

我正在使用核心数据和最新的 XCode。我有一个基于视图的表,NSPopupButtons其中一个列。该表有一个数组控制器,它从实体 A 获取其数据。实体 B 有另一个数组控制器。正是这个实体 B 应该填充弹出按钮项。

一个NSPopupButton表可以被填满没有问题,所以这一定是一个与表有关的问题!

我应该如何填写表格中列中的弹出按钮?

表格的一部分,带有弹出按钮。

4

3 回答 3

0

您可以执行以下操作:

  1. 将表格视图的行高增加到 22px 或更大。
  2. 绑定到objectValue.menuValues(显然是你添加到你的东西objectValue)。
  3. NSPopupButton应该作为 的子视图放置NSTableCellView

这样,只要您objectValue有一个能够填充 aNSPopupButton的菜单的绑定,您就不需要直接访问它。从这里您还可以将selector出口设置为您的委托/视图控制器的类,并使用一些漂亮superview的挖掘来找到NSTableCellView它,然后从那里操作。

我知道这很复杂,但它几乎是零代码。曾几何时,我曾经看不起IB太“n00b”,但Bindings让它成为了一个相当强大的工具。

于 2013-03-13T02:30:45.680 回答
0

我当然找到了基于单元的 NSPopupButtonCell 工作。您应该能够使用基于视图的表来实现相同的目标。当您直接绑定到视图中的对象时,绑定完全不同。因此,将弹出窗口的内容直接绑定到数据源。在 IB 中为实体 B 创建一个 ArrayController 并将其直接绑定到 Popups Content,还将 contentValue 绑定到要显示的实体 B 的字段。

然后将弹出窗口的列内容绑定到实体 A,现在将弹出窗口的值绑定到表格单元格视图 objectValue.(实体 A 字段名称)。

于 2013-08-14T14:59:38.033 回答
0

需要通过 Files' Owner 传递控制器,而不是直接绑定到弹出按钮。(有人说,这是 Xcode 中的一个错误..)

因此,我的解决方案在文件所有者中使用了一个 IBOutlet (currencyCtrl),它绑定到数组控制器(在您的情况下是实体 B)。对于 NSPopupButton,您应该使用以下绑定:

在此处输入图像描述

于 2017-07-27T18:25:16.173 回答