Jelajahi Sumber

Merge pull request #352 from MikePlante1/deleting_meal_note_fix

Prevent crash when holding backspace
Deniz Cengiz 1 tahun lalu
induk
melakukan
6c88cee6b7
1 mengubah file dengan 15 tambahan dan 11 penghapusan
  1. 15 11
      FreeAPS/Sources/Views/TextFieldWithToolBar.swift

+ 15 - 11
FreeAPS/Sources/Views/TextFieldWithToolBar.swift

@@ -290,20 +290,24 @@ extension TextFieldWithToolBarString.Coordinator: UITextFieldDelegate {
         shouldChangeCharactersIn range: NSRange,
         replacementString string: String
     ) -> Bool {
-        if let maxLength = parent.maxLength {
-            // Get the current text, including the proposed change
-            let currentText = textField.text ?? ""
-            let newLength = currentText.count + string.count - range.length
-            if newLength > maxLength {
-                return false
-            }
+        guard let currentText = textField.text as NSString? else {
+            return false
+        }
+
+        // Calculate the new text length
+        let newLength = currentText.length + string.count - range.length
+
+        // If there's a maxLength, ensure the new length is within the limit
+        if let maxLength = parent.maxLength, newLength > maxLength {
+            return false
         }
 
+        // Attempt to replace characters in range with the replacement string
+        let newText = currentText.replacingCharacters(in: range, with: string)
+
+        // Update the binding text state
         DispatchQueue.main.async {
-            if let textFieldText = textField.text as NSString? {
-                let newText = textFieldText.replacingCharacters(in: range, with: string)
-                self.parent.text = newText
-            }
+            self.parent.text = newText
         }
 
         return true