#macos #widget #macos-sierra
#macos #виджет #macos-sierra
Вопрос:
Центр уведомлений в Sierra имеет новый, светлый цвет фона по сравнению с Yosemite и El Cap. Однако мой виджет по-прежнему отображает старый темный стиль, даже когда я перестраиваю его с помощью нового SDK.
Для отображения установлено значение «Унаследованный (ярко-темный)». Изменение этого значения на «Aqua», похоже, не имеет никакого эффекта.
Можно ли изменить сторонние виджеты, чтобы они выглядели так же, как у Apple? Я замечаю, что все другие сторонние виджеты выглядят одинаково.
Ответ №1:
Вам необходимо установить значение NSExtensionPointVersion
to 2.0
в вашем расширении Today Info.plist
, чтобы получить новый внешний вид:
<key>NSExtension</key>
<dict>
<key>NSExtensionAttributes</key>
<dict>
<key>NSExtensionPointVersion</key>
<string>2.0</string>
</dict>
</dict>
В последний раз, когда я проверял, это нигде не было задокументировано, но если вы создаете новое расширение Today с помощью Xcode 8, оно должно добавить это для вас, подтвердив, что это правильный подход. (На самом деле я понял это, изучив содержимое собственных расширений Apple Today.)
Стоит упомянуть, что более старые версии macOS по-прежнему будут иметь темный внешний вид, поэтому, если ваше расширение обратно совместимо, вам нужно будет настроить содержимое в соответствии с цветом фона. В главном контроллере представления вашего расширения Today вы можете проверить, не выглядит ли он темным, например:
NSString *appearance = self.parentViewController.view.effectiveAppearance.name;
BOOL legacyDarkBackground = ([appearance isEqualToString:NSAppearanceNameVibrantDark]);
Комментарии:
1. Спасибо. Это работает. Но когда я создаю архив для отправки, я получаю сообщение об ошибке: «Сбой работы iTunes Store. Неверный ключ Info.plist. Недопустим ключ ‘NSExtensionPointVersion’ в bundle ***.appex «. Как это решить?