0

我想使用 NSFormatter 子类来格式化我用来显示选项列表的 NSPopUpButton 的内容。

基本上我有一个 MyObjects 的 NSArray,它通过 Content Values 绑定绑定到 NSPopUpButton,我想在弹出菜单中显示除 -description 返回的内容之外的内容。我真的不想使用转换器,因为我必须创建一个全新的数组并将每个对象转换为字符串,然后再将其添加到新数组中。

使用 setFormatter: 在 NSPopUpButton 本身上通过 IB 或代码不起作用,我怀疑是因为只有单个单元格的格式化程序应用于列表中的项目。

有没有一种简单的方法可以为 NSPopUpButton 的所有单元格设置格式化程序?基本上我希望能够设置一次并忘记它。

4

1 回答 1

1

通常,您会将弹出按钮绑定到包含自定义模型对象的数组控制器(通过内容绑定),并使用内容值绑定在这些对象上指定一个键路径,并使用您要用作标题的字符串。

据我了解,您有一个要用作数据源的纯字符串数组,只是您想为标题显示不同的字符串,对吗?

我不确定如果像上面这样设置,为什么制作数据转换器不起作用 - 或者我可能误解了什么?您将有一个绑定到实际字符串,另一个绑定到使用转换器的字符串,但它们都将使用相同的数组控制器。您的其他选择是创建一个模型类来包装字符串并提供一个标题属性,或者在 NSString 上创建一个类别,该类别返回您的标题以用作显示值绑定。在所有这些情况下,您都可以在代码中创建自己的 NSFormatter 并使用它来返回正确的字符串标题。

于 2009-05-04T22:09:33.823 回答