При щелчке по элементу панели инструментов отображается экземпляр NSColorPanel. К выбранному цвету можно получить доступ из NSColorPanel.color, но у нас нет ссылки на показанную панель. Приложениям Mac Catalyst не виден даже класс NSColorPanel.
К счастью, при выборе цвета появляется уведомление. в цветной панели. Итак, все, что нам нужно, это наблюдать за этим уведомлением, чтобы получить ссылку на экземпляр NSColorPanel, а затем получить доступ к его свойству color:
NotificationCenter.default.addObserver(forName: .init("NSColorPanelColorDidChangeNotification"), object: nil, queue: nil) { notification in
let color = (notification.object as? NSObject)?.value(forKey: "color") as? UIColor
print("Color changed", color)
}
personHejazischedule12.09.2020
comment
Это работа, но не уверен, что она пройдет проверку или нет.
- personsarunw; 15.09.2020
comment
Я почти уверен, что так и будет. Здесь у вас нет доступа к частному API. Все задокументировано.
- personHejazi; 15.09.2020
comment
@Hejazi, пожалуйста, предоставьте код Objective-C?
- personYogendra Patel; 31.12.2020
comment
@YogendraPatel Что ж, это домашнее задание для вас :) Если серьезно, это базовое прослушивание событий с использованием NSNotificationCenter. Вы легко можете сделать это самостоятельно.
- personHejazi; 01.01.2021