はじめに
iOS16.4からmenuActionDismissBehavior
というメソッドが使用できるようになりました。
これはメニュー内のボタンを押した後、メニューを閉じないようにすることができます。
実装
import SwiftUI
struct ContentView: View {
@State private var searchText = ""
var body: some View {
Menu {
Button {
print("heart")
} label: {
Label("heart", systemImage: "heart.fill")
}
Button {
print("star")
} label: {
Label("star", systemImage: "star.fill")
}
Button {
print("cross")
} label: {
Label("cross", systemImage: "cross.fill")
}
} label: {
Text("メニュー")
}
+ .menuActionDismissBehavior(.disabled)
}
}
比較
enabled |
disabled |
---|---|
おわり
メニュー内のボタンを押した時にメニューを閉じたくない場合ってあんまり考えられないですね。
まぁ自由度が上がって嬉しいですね
公式ドキュメント