#macos #swiftui
Вопрос:
У меня есть приложение SwiftUI. Я могу добавлять меню в приложение, это довольно просто. Это добавляет дополнительное меню в строку меню. Но как мне добавить экран «О программе», экран «Настройки» или еще что-нибудь в существующее меню «Файл»?
Вот мой код:
@main
struct MyApp: App
{
var body: some Scene
{
WindowGroup
{
ContentView()
}
.commands
{
CommandMenu("My menu")
{
Button("Item 1")
{
print ("item 1")
}
Button("Preferences...")
{
preferencesWindowController.show()
}
}
}
}
}
Я также использую пакет настроек от sindresorhus
Ответ №1:
- Чтобы добавить настройки… пункт меню вы добавляете
Settings
представление после группы окон
WindowGroup {
ContentView()
}
Settings {
MyCustomSettingsView()
}
- Экран «О программе»уже включен в ваше приложение macOS, но вы можете настроить его, добавив в свой проект форматированный текстовый файл с именем «Credits.rtf».
- Чтобы добавить что-либо в существующее меню , которое вы используете
CommandGroup
, в приведенных ниже примерах добавляется новый пункт меню после «Новое окно» в меню Файл
CommandGroup(after: .newItem, addition: {
Button { someAction() } label: { Text("Some Action" }
})