如何在NSOutlineView中设置本地化的显示/隐藏按钮

时间:2011-12-25 22:51:58

标签: objective-c macos cocoa

我的应用程序中有NSOutlineView。这个功能

-(BOOL)outlineView:(NSOutlineView*)outlineView isGroupItem:(id)item

将outlineView中的一些项目设置为组根(如果函数返回YES)+在单元格末尾添加show / hide按钮以展开/折叠该组的内容,但此按钮用英语编写。我来自白俄罗斯,这就是为什么我要用我的语言写显示/隐藏单词的原因。 Finder用我的语言写,这就是为什么我认为,有什么选项可以为它设置本地化的风格。 我怎么能这样做?

解决: Mac OS在选择包含NSOutineView

的.nib文件的本地化时自行完成此操作

1 个答案:

答案 0 :(得分:0)

检索本地化的显示/隐藏按钮(以及公开按钮)的官方方法现在是NSOutlineView类参考中的documented

let showHideButton = outlineView.makeViewWithIdentifier(NSOutlineViewShowHideButtonKey, owner: outlineView.delegate()) as? NSButton

重要的是要注意按钮的state属性控制隐藏/显示标题,默认情况下不会同步到NSOutlineView的状态:

  • NSOnState =“隐藏”
  • NSOffState =“显示”
  

NSOutlineViewDisclosureButtonKey   普通三角形披露按钮。

     

NSOutlineViewShowHideButtonKey   显示/隐藏按钮。

     

大纲视图通过调用其继承来创建这些按钮   makeViewWithIdentifier:owner:方法,传入密钥作为   标识符和代理人作为所有者。

     

这些密钥向后兼容OS X v10.7,但是,   在v10.9和字符串值之前不导出符号   (@“NSOutlineViewDisclosureButtonKey”)必须使用。