#swift #macos #appkit #nssplitview #macos-big-sur
#swift #macos #appkit #nssplitview #macos-big-sur
Вопрос:
У меня есть небольшое приложение, которое содержит NSSplitViewController с 3 вертикальными разделенными представлениями (боковая панель, просмотр содержимого, просмотр сведений), вроде почтового приложения. Я программно изменил цвет разделителя между различными разделенными представлениями, и это работало нормально до macOS 11.
К сожалению, после обновления проекта для поддержки macOS 11 разделитель между боковой панелью и представлением содержимого вернулся к цвету Apple по умолчанию как в светлой, так и в темной теме, и мое переопределение, похоже, больше не работает.
В настоящее время я просто создаю подкласс NSSplitView и переопределяю метод dividerColor, как описано в документации Apple
// ... You can override this method to change the color of dividers.
@available(macOS 10.5, *)
@NSCopying open var dividerColor: NSColor { get }
Другой разделитель выглядит отлично, так как работает должным образом.
Есть какие-либо подсказки о том, как переопределить цвет разделителя боковой панели??
Заранее спасибо за любые предложения.
Ответ №1:
Вы можете попробовать использовать этот метод для самостоятельного рисования разделителя :
func drawDivider(in rect: NSRect)
Из этого метода даже можно вызвать super, если по какой-то причине вам иногда нужен оригинальный дизайн.