IOS18 onTapGesture перестал работать с менюIOS

Программируем под IOS
Ответить
Anonymous
 IOS18 onTapGesture перестал работать с меню

Сообщение Anonymous »

Проблема:
После обновления до Swift 6 и iOS 18 взаимодействие компонента меню работает не так, как ожидалось. onTapGesture и PrimaryAction работают неправильно, вызывая желаемое действие, когда пользователь нажимает на меню.
Примеры кода:
Использование onTapGesture с Меню (не работает):

Код: Выделить всё

Menu {
Button(action: {}) {
Label("Add to Reading List", systemImage: "eyeglasses")
}
Button(action: {}) {
Label("Add Bookmarks for All Tabs", systemImage: "book")
}
Button(action: {}) {
Label("Show All Bookmarks", systemImage: "books.vertical")
}
} label: {
Label("Add Bookmark", systemImage: "book")
} onTapGesture: {
print("Print on tap gesture")
}
Использование первичного действия (меню не отображается, но действие запускается при нажатии):

Код: Выделить всё

Menu {
Button(action: {}) {
Label("Add to Reading List", systemImage: "eyeglasses")
}
Button(action: {}) {
Label("Add Bookmarks for All Tabs", systemImage: "book")
}
Button(action: {}) {
Label("Show All Bookmarks", systemImage: "books.vertical")
}
} label: {
Label("Add Bookmark", systemImage: "book")
} primaryAction: {
print("Primary action triggered")
}
Попытка наложения области касания (без эффекта):

Код: Выделить всё

ZStack {
Menu {
Button(action: {}) {
Label("Add to Reading List", systemImage: "eyeglasses")
}
Button(action: {}) {
Label("Add Bookmarks for All Tabs", systemImage: "book")
}
Button(action: {}) {
Label("Show All Bookmarks", systemImage: "books.vertical")
}
} label: {
Label("Add Bookmark", systemImage: "book")
}
Color.clear
.contentShape(Rectangle())
.onTapGesture {
print("Tap gesture recognized")
}
}
Пожалуйста, помогите.
Как начать действие, когда пользователь нажимает на меню?

Подробнее здесь: https://stackoverflow.com/questions/790 ... -with-menu
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»