Можно ли настроить цвет UIMenuController? - PullRequest
4 голосов
/ 29 марта 2011

Цвет фона по умолчанию черный.Как я могу изменить цвет, как tintColor для панелей навигации?

Ответы [ 2 ]

5 голосов
/ 25 февраля 2016

Возможное решение для изменения цвета текста состоит в том, чтобы использовать внешний прокси UIButton внутри UIMenuController.Дело в том, что он напрямую использует частный подкласс UIButton, используемый Apple в контроллере меню.Я бы никогда не порекомендовал получить доступ к закрытому классу Apple (а тем более через его название), но в этом конкретном случае настройки цвета в контроллере меню я думаю, что это лучшее решение.Он позволяет вам определить, как выглядит ваш вид.

Swift

(NSClassFromString("UICalloutBarButton")! as! UIButton.Type).appearance().setTitleColor(UIColor.redColor(), forState: UIControlState.Normal)

Objective-C

[[NSClassFromString(@"UICalloutBarButton") appearance] setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
4 голосов
/ 29 марта 2011

Я почти уверен, что это невозможно.Возможно, вам удастся что-то придумать, если вы сделаете это подклассом.

РЕДАКТИРОВАТЬ: я взглянул на файл UIMenuController.h, и, похоже, нет никаких очевидных способов изменить цвет.Это подкласс NSObject, если это вам поможет.Кроме того, если вы посмотрите на то, как люди подкласса UITabBarController изменяют свой цвет, вы можете найти аналогичное решение.

...