2010-06-04 165 views
0

是否可以在NSPopupButton上设置默认选择?我有一个允许用户选择他们想要设置的服务器的类型,但是由于NSPopupButton总是显示第一个项目,如果这是他们想要的类型,他们可能会忽略它。但是,即使正在显示该项目,调用-selectedItem也会返回(null)。如果用户首先从菜单中选择一个项目,一切正常。为NSPopupButton设置默认选择?

Button的内容和contentValues绑定到同一个Array控制器,而后者又绑定到NSDictionary的keys属性。我已经尝试将selectedIndex绑定到控制器中的变量并在代码中进行更新,但它没有任何作用。 (我可能只是绑定它错了......)我怎么能默认选择第一个项目?

在此先感谢!
SphereCat1

回答

1

使用绑定时,您不需要也不应该直接从视图中获取任何模型信息 - 既不是模型本身,也不应该选择状态。与拥有模型和选定索引的控制器交谈。

请注意,“索引”对于NSDictionary没有任何意义,并且keys不是NSDictionary的属性。 (事实上​​,如果你得到一个异常,我不会感到惊讶,因为你的字典没有对象中的关键“键”)。这是一种方法,而不是访问类型,所以当你可以请问字典中使用键值编码的方法的价值,你不应该。

你应该做的是让model objects代表服务器类型,并保存这些类型的数组,并将数组控制器的内容绑定到其值为该数组的属性。将弹出按钮的contentValues绑定到您的模型对象的名称属性,该名称属性应该包含每个服务器类型的本地化名称。

+0

谢谢你的回答! – vilhalmer 2010-06-06 13:54:25