Как установить локализованные кнопки показа / скрытия в NSOutlineView - PullRequest
4 голосов
/ 26 декабря 2011

У меня есть NSOutlineView в моем приложении. Эта функция

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

устанавливает некоторые элементы в outlineView как корень группы (если функция возвращает YES) + добавляет кнопки «показать / скрыть» в конце ячейки, чтобы развернуть / свернуть содержимое этой группы, но эта кнопка написана на английском языке. Я из Беларуси, поэтому я хочу показать / скрыть слова, написанные на моем языке. Finder пишет на моем языке, поэтому я думаю, что есть какой-то вариант, чтобы установить для него локализованный стиль. Как я могу это сделать?

РЕШИТЬ: Mac OS делает это самостоятельно во время выбора локализации файла .nib, который содержит NSOutineView

1 Ответ

0 голосов
/ 11 июня 2016

Официальный способ получения локализованной кнопки показа / скрытия (а также кнопки раскрытия) теперь задокументирован в справочнике классов NSOutlineView.

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") должен быть использован.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...