From c2409cde85bdf38c0bdd96cedf8d2bdad35f24b7 Mon Sep 17 00:00:00 2001 From: iOS-Ruti <> Date: Wed, 13 Mar 2024 13:00:37 +0530 Subject: [PATCH] solve cursor position issue --- .../UserInterfaceState.xcuserstate | Bin 0 -> 11963 bytes .../xcschemes/xcschememanagement.plist | 14 ++++++++++++++ OTPFieldView/OTPFieldView.swift | 3 +++ 3 files changed, 17 insertions(+) create mode 100644 OTPFieldView.xcodeproj/project.xcworkspace/xcuserdata/mac.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 OTPFieldView.xcodeproj/xcuserdata/mac.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/OTPFieldView.xcodeproj/project.xcworkspace/xcuserdata/mac.xcuserdatad/UserInterfaceState.xcuserstate b/OTPFieldView.xcodeproj/project.xcworkspace/xcuserdata/mac.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..6260cc7ed38db4aa345be67e785e76ea69a3107c GIT binary patch literal 11963 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 + + + + SchemeUserState + + OTPFieldView.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/OTPFieldView/OTPFieldView.swift b/OTPFieldView/OTPFieldView.swift index bcee25d..d97de03 100644 --- a/OTPFieldView/OTPFieldView.swift +++ b/OTPFieldView/OTPFieldView.swift @@ -250,6 +250,9 @@ extension OTPFieldView: UITextFieldDelegate { public func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool { let shouldBeginEditing = delegate?.shouldBecomeFirstResponderForOTP(otpTextFieldIndex: (textField.tag - 1)) ?? true if shouldBeginEditing { + DispatchQueue.main.async { + textField.selectedTextRange = textField.textRange(from: textField.endOfDocument, to: textField.endOfDocument) + } return isPreviousFieldsEntered(forTextField: textField) }