Как добавить пункты меню в MenuButton в SwiftUI? - PullRequest
1 голос
/ 21 января 2020

Используя AppKit, вы можете добавить NSMenuItem s к NSMenu. Я видел, что в SwiftUI есть что-то похожее на NSMenu, а именно MenuButton. Но я не могу найти документацию о том, как это работает.

Я попробовал следующее:

MenuButton("+") {
    Button("New contact") { print("Create new contact") }
    Button("New group") { print("Create new group") }
}

И это дает мне

an opened MenuButton

Выглядит почти нормально , но

  • Кнопки имеют цвет фона, отличный от меню (обратите внимание на чуть более светлый цвет над и под элементами меню) .
  • При наведении курсора на пункты меню их цвет фона не меняется, как в обычном меню MacOS. См. Изображение ниже:

Highlighted menu item

Я также пытался изменить цвет фона вручную с помощью модификатора .background(), но это не влияет полная ширина пункта меню.

MenuButton("+") {
    Button("New contact") { print("Create new contact") }
        .background(Color.accentColor)
    Button("New group") { print("Create new group") }
}

Menu with manually changed background

Я полагаю, это потому, что я помещаю Button s внутри MenuButton, в то время как вероятно, он ожидает какой-то другой элемент SwiftUI. Какие элементы я должен поместить в MenuButtons, чтобы создать нормально выглядящее меню macOS, подобное приведенному ниже?

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...