반응형
Hacking with Swift 사이트의 강좌 번역본입니다.
[원문 : https://www.hackingwithswift.com/quick-start/swiftui/how-to-show-a-context-menu]
How to show a context menu
SwiftUI는 앱에서 팝업(popup) 메뉴를 만들기 위한 ContextMenumodifier를 제공합니다. iOS에서는 일반적으로 3D Touch를 사용해서 처리되지만, macOS에서 우측 클릭하는 것과 같은 동작입니다 - 유연한 API입니다.
context menu는 버튼 컬렉션에 내장되어 있으며, 각각 고유한 동작, 텍스트, 아이콘으로 되어 있습니다. SwiftUI가 시스템 표준 모양과 느낌에 맞도록 암시적으로 HStack을 제공할 것이 때문에, 텍스트와 아이콘은 버튼 내부에 직접 제공될 수 있습니다.
따라서, 어떤 텍스트에 context menu를 붙이고자 하는 경우에, 다음과 같이 해당 메뉴에 2개의 버튼을 제공할 수 있습니다.
struct ContentView: View {
var body: some View {
Text("Options")
.contextMenu {
Button(action: {
// change country setting
}) {
Text("Choose Country")
Image(systemName: "globe")
}
Button(action: {
// enable geolocation
}) {
Text("Detect Location")
Image(systemName: "location.circle")
}
}
}
}
iOS에서 사용해보기 위해서, Options텍스트에서 강하게 길게 눌러서 메뉴를 불러오거나, macOS에서는 우측 클릭을 누르세요. 이런 종류의 메뉴를 텍스트 뷰만 아니라, 모든 SwiftUI 뷰에 붙일수 있는 것을 추가할만한 가치가 있습니다.
주의 : 현재 context menu는 약간 버그가 있고, context menu가 유효하지 않다는 오류가 발생해서 앱이 크래쉬 될수도 있습니다.
반응형
'SwiftUI > Alerts and action sheets' 카테고리의 다른 글
How to show an action sheet (0) | 2019.11.22 |
---|---|
How to add actions to alert buttons (0) | 2019.11.22 |
How to show multiple alerts in a single view (0) | 2019.11.22 |
How to show an alert (0) | 2019.11.22 |
Working with presentations (0) | 2019.11.22 |