Как использовать FocusState в iOS 14 [дубликат]IOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Как использовать FocusState в iOS 14 [дубликат]

Сообщение Anonymous »

Я разрабатываю приложение SwiftUI с минимальной целевой версией iOS 14 и столкнулся с проблемой FocusState, которая доступна только начиная с iOS 15. Как я могу исправить эту ошибку? Это мое мнение

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

import SwiftUI

struct BaseInputOTP: View {
var isSecure: Bool = false
var isError: Bool = false
@Binding var value: String
@FocusState var focus: Bool

var body: some View {
HStack(spacing: 8) {
ForEach(0.. some View {
ZStack {
if value.count > index && !isSecure {
let startIndex = value.startIndex
let charIndex = value.index(startIndex, offsetBy: index)
let charToString = String(value[charIndex])

Text(charToString)
.font(FontFigtreeManager.heading5A)
.foregroundColor(Constants.ColorNeutralColorDark100)
} else {
Text(" ")
}
}
.padding(.horizontal, 18)
.padding(.vertical, 17)
.frame(maxWidth: .infinity, minHeight: 64, maxHeight: 64, alignment: .center)
.cornerRadius(Constants.RadiusMd)
.overlay {
let status = (focus && value.count == index)
let strokeColor = isError
? Color(red: 0.82, green: 0.26, blue: 0.26)
: Color(red: 0.1, green: 0.1, blue: 0.1).opacity(status ? 1 : 0.2)

RoundedRectangle(cornerRadius: Constants.RadiusMd)
.inset(by: 0.5)
.stroke(strokeColor, lineWidth: 1)
.animation(.easeInOut(duration: 0.2), value: isError)
.background (
Group{
if status {
BlinkingCursor()
}

}
)

if value.count > index && isSecure {
Circle()
.fill(Color(red: 0.1, green: 0.1, blue: 0.1))
.frame(width: 24, height: 24)
}
}
}
}

struct BlinkingCursor: View {
@State private var opacity: Double = 1.0

var body: some View {
Text("|")
.font(FontFigtreeManager.heading5A)
.foregroundColor(Color(red: 0.1, green: 0.1, blue: 0.1))
.opacity(opacity)
.onAppear {
withAnimation(Animation.linear(duration: 0.6).repeatForever(autoreverses: true)) {
opacity = 0.2
}
}
}
}

extension Binding where Value == String {
func limit(_ length: Int) -> Self {
if self.wrappedValue.count > length {
DispatchQueue.main.async {
self.wrappedValue = String(self.wrappedValue.prefix(length))
}
}
return self
}
}

Я пытаюсь искать и спрашивать, но все говорят только об изменении моей минимальной цели на 15. Я не могу изменить минимальную цель на iOS 15 из-за требований клиента. Как я могу изменить свое представление для управления фокусом таким образом, чтобы оно было совместимо с iOS 14?

Подробнее здесь: https://stackoverflow.com/questions/793 ... -in-ios-14
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • SwiftUI – изменяемый @FocusState для дочернего просмотра?
    Anonymous » » в форуме IOS
    0 Ответы
    77 Просмотры
    Последнее сообщение Anonymous
  • SwiftUI – изменяемый @FocusState для дочернего просмотра?
    Anonymous » » в форуме IOS
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • KeyBoard закрывается, когда TextField изменяется на secureField и наоборот. Использование FocusState
    Anonymous » » в форуме IOS
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • .NET iOS (ранее Xamarin.iOS) | Чтение изображения, опубликованного из файлов/фото в приложении iOS
    Anonymous » » в форуме C#
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Разное появление Uibarbuttonitem в iOS 26 Beta 4 по сравнению с версией iOS 18 - как сохранить стиль iOS 18?
    Anonymous » » в форуме IOS
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous

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