forked from shadowfacts/Tusker
Fix cursor movement not working in compose text fields when emoji added
Removes workaround introduced in 8c4ef3caa6
. This is no longer necessary
and autocorrect works fine without it since at least iOS 14.4.
Closes #118
This commit is contained in:
parent
8ea15d3bab
commit
c737354ed3
|
@ -57,14 +57,6 @@ struct ComposeContentWarningTextField: UIViewRepresentable {
|
||||||
updateAutocompleteState(textField: textField)
|
updateAutocompleteState(textField: textField)
|
||||||
}
|
}
|
||||||
|
|
||||||
func textFieldDidChangeSelection(_ textField: UITextField) {
|
|
||||||
// Update text binding before potentially triggering SwiftUI view update.
|
|
||||||
// See comment in MainComposeTextView.Coordinator.textViewDidChangeSelection
|
|
||||||
text.wrappedValue = textField.text ?? ""
|
|
||||||
|
|
||||||
updateAutocompleteState(textField: textField)
|
|
||||||
}
|
|
||||||
|
|
||||||
func autocomplete(with string: String) {
|
func autocomplete(with string: String) {
|
||||||
guard let textField = textField,
|
guard let textField = textField,
|
||||||
let text = textField.text,
|
let text = textField.text,
|
||||||
|
|
|
@ -258,21 +258,6 @@ struct MainComposeWrappedTextView: UIViewRepresentable {
|
||||||
updateAutocompleteState()
|
updateAutocompleteState()
|
||||||
}
|
}
|
||||||
|
|
||||||
func textViewDidChangeSelection(_ textView: UITextView) {
|
|
||||||
// Update the value of the text binding.
|
|
||||||
// Sometimes, when the user accepts an autocomplete suggestion from the system keyboard, the system
|
|
||||||
// calls didChangeSelection before textDidChange, resulting in a loop where the updating the Tusker autocomplete
|
|
||||||
// state in didChangeSection (via updateAutocompleteState) triggers a new SwiftUI view update,
|
|
||||||
// but when that SwiftUI update is handled, the model still has the old text (from prior to accepting the autocomplete
|
|
||||||
// suggestion), meaning the UITextView's text gets set back to whatever it was prior to the system autocomplete.
|
|
||||||
// To work around that, we also update the text binding in didChangeSelection, to ensure that, if the autocomplete state
|
|
||||||
// does change and trigger a SwiftUI update, the binding will have the correct text that was produced by the system
|
|
||||||
// autocompletion.
|
|
||||||
text.wrappedValue = textView.text ?? ""
|
|
||||||
|
|
||||||
updateAutocompleteState()
|
|
||||||
}
|
|
||||||
|
|
||||||
func autocomplete(with string: String) {
|
func autocomplete(with string: String) {
|
||||||
guard let textView = textView,
|
guard let textView = textView,
|
||||||
let text = textView.text,
|
let text = textView.text,
|
||||||
|
|
Loading…
Reference in New Issue