Kopie in Uitextfield verschiebt das Pfarr, auch wenn es sichIOS

Programmierung für iOS
Anonymous
 Kopie in Uitextfield verschiebt das Pfarr, auch wenn es sich

Post by Anonymous »

Setup: < /h2>

[*]

Code: Select all

UITextField
soll eine fraktionale Anzahl von 18 Symbolen enthalten.
[*]

Code: Select all

UITextFieldDelegate
, das Beschränkungen bestätigt;

Code: Select all

UITextPasteDelegate
, die beim Einfügen zusätzliche Symbole klammern.

Code: Select all

,
), was wird durch UitextFieldDelegate :

Komma wurde nicht eingefügt, aber das Caret bewegte sich, als wäre es.

Code: Select all

UITextPasteDelegate
:

Code: Select all

func textPasteConfigurationSupporting(_ textPasteConfigurationSupporting: UITextPasteConfigurationSupporting, transform item: UITextPasteItem)
{
_ = item.itemProvider.loadObject(
ofClass: String.self,
completionHandler: { object, _ in

guard let string = object
else { return }

DispatchQueue.main.async { [weak self] in

guard let self
else { return }

if let textField = textPasteConfigurationSupporting as? UITextField,
let selectedRange = textField.selectedRange
{
let resultingString = textField.text?.resultingString(
replacementString: string,
replacementRange: selectedRange
) ?? ""

if resultingString.count > 18
{
/* set clipped text manually */
}
else
{
item.setResult(string: string)
}
}
}
}
)
}
< /code>
UITextFieldDelegate
:

Code: Select all

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool
{
guard let resultingString = textField.text?.resultingString(
replacementString: string,
replacementRange: range
)
else { return false }

return resultingString 
* Here resultingString(replacementString:replacementRange:)
und SelectedRange sind benutzerdefiniert.

Code: Select all

item.setNoResult()
textField.text = resultingString
textField.sendActions(for: .editingChanged)
< /code>

 Die Pfarrposition in UitextFieldDelegate < /code> < /li>
< /ol>
wiederherstellenlet shouldChange = resultingString 
* Here setCaretIndex()
ist benutzerdefiniert.
wäre dankbar für bessere Lösungen!>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post