モーダルいろいろ - modal
- Inspector
- inspectorColumnWidth(min: .., ideal:, max: ..)
type | iPhone | iPad | macos |
---|---|---|---|
sheet | 全画面 | 真ん中にモーダル | 真ん中にモーダル |
inspector | 下半分。。 横レイアウトだと閉じれない。ボタンをつけるか | 右サイドバー | 右サイドバー |
inspector入れ子 | 同じサイズで重なる。 1個の場合と閉じ方同じ | 同じサイズで重なる。 閉じるすべがない。ボタンをつけるか | 同じサイズで重なる。閉じるすべがない。ボタンをつけるか |
popover | 全画面 | 横にフキダシ。。サイズ指定が必要可 | 画面(該当コントロール)外。 にフキダシが出る |
alert | ダイアログ。 | ||
confirmationDialog |
- sheet : 全画面になる
swift
.sheet(isPresented: $dispSidebarRightRoute) {
Text()
}
swift
.inspector(isPresented: $dispSidebarRightRoute) {
Text()
}
- Alert
swift
.alert("削除しますか? \(eventToDelete.title)", isPresented: $dispDeleteDialog) {
Button("Cancel") {
dispDeleteDialog = false
eventToDelete = nil
}
Button("OK") {
EventKitUtil.removeEvent(event: eventToDelete) {
reloadEvents()
}
}
}
swift
.alert("リスト新規作成", isPresented: $dispAddDialog, actions: {
TextField("リスト名", text: $newTemplateSetName)
Button("Add") {
}
.disabled(newTemplateSetName.trimmingCharacters(in: .whitespaces) == "")
Button("Cancel") {
dispAddDialog = false
}
}, message: {
Text("説明..")
})
swift
CalendarPickerButton()
.popover(isPresented: $dispCalendarPicker, attachmentAnchor: .point(.bottomTrailing), arrowEdge: .bottom) {
CalendarPicker(calendar: $calendar)
.frame(minWidth: 300, minHeight: 400)
.presentationCompactAdaptation(.none) // for iPhone
}
swift
.confirmationDialog("Event Detail", isPresented: $dispEventDetailConfirmation, titleVisibility: .visible) {
}
- sheet
- interactiveDismissDisabled
- presentationDetents
- presentationDragIndicator
- presentationBackground
- presentationCornerRadius
- presentationBackgroundInteraction