Außer Kraft setzt einfügen: zum Formatieren von Text
-
22-09-2019 - |
Frage
Ich möchte eine Zeichenfolge erfassen in eine Steuer eingefügt werden und einige benutzerdefinierte gelten für die Zeichenfolge Formatierung vor eingefügt werden.
Wie ist das möglich?
Danke!
Lösung
außer Kraft setzen paste:
Ihrer Ansicht / Steuerung (Paste: ist Teil des UIResponderStandardEditActions
informellen Protokoll). Am einfachsten, würden Sie dies tun:
- (void)paste:(id)sender
{
UIPasteboard* pasteboard = [UIPasteboard generalPasteboard];
NSString* rawString = pasteboard.string;
NSString* formattedString = // do something fun with rawString here
pasteboard.string = formattedString;
[super paste:sender];
}
Dies wird vorausgesetzt, Sie nicht etwas schrecklich Phantasie mit der Zeichenfolge tun müssen (wie animierte Smileys oder etwas einfügen), in diesem Fall sollten Sie super
nicht nennen, aber tun das Einsetzen selbst (wenn Sie dies auf einem tun UITextView
können Sie die selectedRange
Eigenschaft verwenden, um die Einfügung richtig zu tun).
EDIT: Um Daten von einem NSPasteBoard
Sie –stringForType:
oder eine mehrere andere Datenzugriffsmethoden . Sie könnten die Zeichenfolge / Daten validieren müssen, es ist etwas stellen Sie sicher, die eingefügt werden können.
Sie sollten wahrscheinlich nicht nennen super
aber die Verwendung
[self insertText:formattedString];
Wenn Sie dies auf einem NSTextView tun. Wenn Sie mit einer anderen Klasse arbeiten müssen Sie herausfinden, was in diesem Zusammenhang geeignet ist.