Skip to main content

モーダルいろいろ - modal

  • Inspector
    • inspectorColumnWidth(min: .., ideal:, max: ..)
typeiPhoneiPadmacos
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