【问题标题】:How to set localized show/hide buttons in NSOutlineView如何在 NSOutlineView 中设置本地化的显示/隐藏按钮
【发布时间】:2016-10-20 15:08:13
【问题描述】:

我的应用中有 NSOutlineView。这个函数

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

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

已解决: Mac OS 在选择包含 NSOutineView 的 .nib 文件的本地化时自行执行此操作

【问题讨论】:

    标签: objective-c macos cocoa


    【解决方案1】:

    获取本地化显示/隐藏按钮(以及披露按钮)的官方方法现在是 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") 必须使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-05
      • 1970-01-01
      • 2019-08-23
      • 2019-10-26
      • 1970-01-01
      • 1970-01-01
      • 2017-01-01
      相关资源
      最近更新 更多