モーダルいろいろ - 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(
"Delete WaypointList",
isPresented: $isDeleteDialogPresented,
actions: {
Button("Cancel", role: .cancel) {
// nop
}
Button("Delete", role: .destructive) {
print("Delete WaypointList \(appData.selectedWaypointList?.name ?? "")")
if let waypointList = appData.selectedWaypointList {
appData.selectedWaypointList = nil
modelContext.delete(waypointList)
try? modelContext.save()
}
}
},
message: {
Text("Are you sure you want to delete the waypoint list '\(appData.selectedWaypointList?.name ?? "")'?")
}
)
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