В моем приложении есть собственное представление ввода — .focusable(). Он ведет себя аналогично TextField, где для его использования необходимо сфокусироваться.
Это отлично работает на всех платформах, включая iPad, за исключением случаев, когда подключена внешняя клавиатура (волшебная клавиатура), и в этом случае она больше не может быть сфокусирована и становится непригодной для использования.
Есть ли решение этой проблемы или обходной путь? Мое представление очень сложное, поэтому простые решения, такие как замена его собственным представлением, невозможны, и я должен быть в состоянии прагматично заставить его сфокусироваться.
Вот очень простой пример, воспроизводящий мою проблему. Ни одна из функций не работает при подключенной клавиатуре:
struct FocusableTestView: View {
@FocusState private var isRectFocused: Bool
var body: some View {
VStack {
// This text field should focus the custom input when pressing return:
TextField("Enter text", text: .constant(""))
.textFieldStyle(.roundedBorder)
.onSubmit {
isRectFocused = true
}
.onKeyPress(.return) {
isRectFocused = true
return .handled
}
// This custom "input" should focus itself when tapped:
Rectangle()
.fill(isRectFocused ? Color.accentColor : Color.gray.opacity(0.3))
.frame(width: 100, height: 100)
.overlay(
Text(isRectFocused ? "Focused" : "Tap me")
)
.focusable(true, interactions: .edit)
.focused($isRectFocused)
.onTapGesture {
isRectFocused = true
print("Focused rectangle")
}
// The focus should be able to be controlled externally:
Button("Toggle Focus") {
isRectFocused.toggle()
}
.buttonStyle(.bordered)
}
.frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .center)
}
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... l-keyboard
Фокусировка SwiftUI не работает на iPad с внешней клавиатурой ⇐ IOS
Программируем под IOS
-
Anonymous
1761348547
Anonymous
В моем приложении есть собственное представление ввода — .focusable(). Он ведет себя аналогично TextField, где для его использования необходимо сфокусироваться.
Это отлично работает на всех платформах, включая iPad, за исключением случаев, когда подключена внешняя клавиатура (волшебная клавиатура), и в этом случае она больше не может быть сфокусирована и становится непригодной для использования.
Есть ли решение этой проблемы или обходной путь? Мое представление очень сложное, поэтому простые решения, такие как замена его собственным представлением, невозможны, и я должен быть в состоянии прагматично заставить его сфокусироваться.
Вот очень простой пример, воспроизводящий мою проблему. Ни одна из функций не работает при подключенной клавиатуре:
struct FocusableTestView: View {
@FocusState private var isRectFocused: Bool
var body: some View {
VStack {
// This text field should focus the custom input when pressing return:
TextField("Enter text", text: .constant(""))
.textFieldStyle(.roundedBorder)
.onSubmit {
isRectFocused = true
}
.onKeyPress(.return) {
isRectFocused = true
return .handled
}
// This custom "input" should focus itself when tapped:
Rectangle()
.fill(isRectFocused ? Color.accentColor : Color.gray.opacity(0.3))
.frame(width: 100, height: 100)
.overlay(
Text(isRectFocused ? "Focused" : "Tap me")
)
.focusable(true, interactions: .edit)
.focused($isRectFocused)
.onTapGesture {
isRectFocused = true
print("Focused rectangle")
}
// The focus should be able to be controlled externally:
Button("Toggle Focus") {
isRectFocused.toggle()
}
.buttonStyle(.bordered)
}
.frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .center)
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79799240/swiftui-focusable-doesnt-work-on-ipad-with-external-keyboard[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия