#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
сработал. Спасибо!