Скрыть стрелки расширения / свертывания NSOutlineView по умолчанию в Big Sur

#appkit #nsoutlineview #macos-big-sur

#appkit #nsoutlineview #macos-big-sur

Вопрос:

До macOS Big Sur я мог создавать NSOutlineView и скрывать стрелки отображения / скрытия по умолчанию, которые расширяют и сворачивают группы элементов. Но теперь в Big Sur я не могу найти способ избавиться от стрелок по умолчанию. Я использую свой собственный стиль и функциональность стрелок.

Вот скриншот:

введите описание изображения здесь

У меня есть NSOutlineView набор для создания Plain стиля, поскольку я также предоставляю свои собственные поля вокруг строк. Но я не вижу никаких опций в редакторе раскадровки для скрытия стрелок, и я не вижу никаких опций NSOutlineView в документации для этого.

Кто-нибудь знает, как скрыть стрелки расширения / свертывания по умолчанию в Big Sur?

Ответ №1:

Надежный способ настроить кнопку раскрытия для NSOutlineView — это подкласс NSOutlineView и переопределить пару ключевых методов. Сначала переопределите frameOfOutlineCellAtRow: чтобы переместить стрелку туда, куда вы хотите. Затем переопределите makeViewWithIdentifier: чтобы настроить представление, которое фактически реализует стрелку. Вы можете идентифицировать его с помощью идентификатора NSOutlineViewDisclosureButtonKey .

Достижение цели таким образом, вероятно, более надежно, чем, однако, вы делали это раньше, и, вероятно, будет более последовательным для таких технологий, как программы чтения с экрана специальных возможностей.

Комментарии:

1. Возврат NSZeroRect frameOfOutlineCell сработал. Спасибо!