Поделиться через


Укажите идиом пользовательского интерфейса для приложения Mac Catalyst

Мультиплатформенный пользовательский интерфейс приложения .NET (.NET MAUI) Mac Catalyst может выполняться в пользовательском интерфейсе iPad или Mac:

  • Идиом пользовательского интерфейса iPad сообщает macOS масштабировать пользовательский интерфейс приложения, чтобы он соответствовал среде отображения Mac при сохранении внешнего вида iPad.
  • Идиом пользовательского интерфейса Mac не масштабируется пользовательский интерфейс приложения, чтобы он соответствовал среде отображения Mac. Некоторые элементы управления изменяют их размер и внешний вид, а взаимодействие с ними чувствует себя идентичным взаимодействию с AppKit элементами управления. Например, отображается UIButton идентичный объекту NSButton.

По умолчанию приложения .NET MAUI Mac Catalyst используют идиом пользовательского интерфейса iPad. Если это нужное поведение, убедитесь, что файл Info.plist приложения указывает только 2 в качестве значения UIDeviceFamily ключа:

<key>UIDeviceFamily</key>
<array>
  <integer>2</integer>
</array>

Возможно, вы обнаружите, что внедрение идиом пользовательского интерфейса Mac улучшает взаимодействие с пользователем приложения. Для этого обновите файл Info.plist приложения, чтобы указать значение 6 в качестве значения UIDeviceFamily ключа:

<key>UIDeviceFamily</key>
<array>
  <integer>6</integer>
</array>

Важно!

Для пользовательского интерфейса Mac требуется macOS 11.0+. Таким образом, чтобы использовать его, необходимо установить SupportedOSPlatformVersion в файле проекта по крайней мере 14.0, что является эквивалентом mac Catalyst версии macOS 11.0.

Внедрение идиом пользовательского интерфейса Mac может потребовать внесения дополнительных изменений в приложение. Например, если приложение использует размеры изображений для iPad или имеет жестко закодированные размеры, возможно, потребуется обновить приложение для учета различий по размеру.

Предупреждение

UIStepper, UIPickerViewи UIRefreshControl не поддерживаются в пользовательском интерфейсе Mac от Apple. Это означает, что элементы управления MAUI .NET, использующие эти собственные элементы управления (StepperPickerиRefreshView) нельзя использовать в идиом пользовательского интерфейса Mac. Попытка сделать это приведет к возникновению исключения macOS.

Кроме того, следующие ограничения применяются в идиом пользовательского интерфейса Mac:

Определение идиома пользовательского интерфейса

В среде выполнения можно определить, какой пользовательский интерфейс идиом использует приложение .NET MAUI Mac Catalyst. Это можно сделать, проверив значение свойства в вашей учетной UserInterfaceIdiom записи UIViewController:

#if MACCATALYST
    UIKit.UIViewController viewController = Platform.GetCurrentUIViewController();
    if (viewController.TraitCollection.UserInterfaceIdiom == UIKit.UIUserInterfaceIdiom.Mac)
        // Mac user interface idiom
    else
        // iPad user interface idiom
#endif

См. также