最新消息:Welcome to the puzzle paradise for programmers! Here, a well-designed puzzle awaits you. From code logic puzzles to algorithmic challenges, each level is closely centered on the programmer's expertise and skills. Whether you're a novice programmer or an experienced tech guru, you'll find your own challenges on this site. In the process of solving puzzles, you can not only exercise your thinking skills, but also deepen your understanding and application of programming knowledge. Come to start this puzzle journey full of wisdom and challenges, with many programmers to compete with each other and show your programming wisdom! Translated with DeepL.com (free version)

macos - Style a plain dropdown menu in SwiftUI - Stack Overflow

matteradmin7PV0评论

I’m trying to create a simple dropdown button in SwiftUI on macOS. Normally I would expect to use something like this:

MenuButton("☰") {
    Button(action: { print("Something") }) {
        HStack {
            Image(systemName: "questionmark.circle")
            Text("Something")
        }
    }
    Button(action: { print("Something Else") }) {
        HStack {
            Image(systemName: "exclamationmark.circle")
            Text("Something Else")
        }
    }
}
.menuButtonStyle(BorderlessButtonMenuButtonStyle())

The .menuButtonStyle(BorderlessButtonMenuButtonStyle()) shows only the menu icon (☰)

without the drop down

However, MenuButton has been deprecated in favour of Menu, which is fine, but I then need to modify it with .menuStyle, and can’t find the equivalent of BorderlessButtonMenuButtonStyle

What would be the equivalent for Menu to suppress the drop down arrow?

I’m trying to create a simple dropdown button in SwiftUI on macOS. Normally I would expect to use something like this:

MenuButton("☰") {
    Button(action: { print("Something") }) {
        HStack {
            Image(systemName: "questionmark.circle")
            Text("Something")
        }
    }
    Button(action: { print("Something Else") }) {
        HStack {
            Image(systemName: "exclamationmark.circle")
            Text("Something Else")
        }
    }
}
.menuButtonStyle(BorderlessButtonMenuButtonStyle())

The .menuButtonStyle(BorderlessButtonMenuButtonStyle()) shows only the menu icon (☰)

without the drop down

However, MenuButton has been deprecated in favour of Menu, which is fine, but I then need to modify it with .menuStyle, and can’t find the equivalent of BorderlessButtonMenuButtonStyle

What would be the equivalent for Menu to suppress the drop down arrow?

Share Improve this question asked Nov 17, 2024 at 5:09 ManngoManngo 16.6k13 gold badges104 silver badges148 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 1

As per the documentation (which may be somewhat innacurate since .buttonStyle(.borderless) does display a down arrow):

borderlessButton Deprecated

Use menuStyle(_:) with button and buttonStyle(_:) with borderless.

        Menu("☰") {
                Button(action: { print("Something") }) {
                    HStack {
                        Image(systemName: "questionmark.circle")
                        Text("Something")
                    }
                }
                Button(action: { print("Something Else") }) {
                    HStack {
                        Image(systemName: "exclamationmark.circle")
                        Text("Something Else")
                    }
                }
            }
            .menuStyle(.button)
            .buttonStyle(.plain)
Post a comment

comment list (0)

  1. No comments so far