Ich schäme mich zugeben, dass ich nicht weiß, wie man eine UITextView
löschen.So löschen Sie UITextView ... für echte
Durch Löschen, meine ich, lassen Sie den Text leer und entfernen Sie alle seine Attribute. Ich dachte, es auf nil
zu setzen wäre genug, aber die Attribute des ersten Zeichens bleiben dort, warten stillschweigend, bis ich noch einmal tippe, um hinzugefügt zu werden.
Zum Beispiel hat der folgende Code eine Vanille UITextView
, die auf Doppeltipp (doubleTapAction:
) gelöscht werden kann. Nach dem Laden füge ich ein benutzerdefiniertes Attribut hinzu, das ebenfalls entfernt werden soll, wenn UITextView
gelöscht wird.
@implementation HPViewController
- (void)viewDidLoad
{
[super viewDidLoad];
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:@"test"];
[attributedString addAttributes:@{@"attribute" : @"value"} range:NSMakeRange(0, 1)];
self.textView.attributedText = attributedString;
}
- (IBAction)doubleTapAction:(id)sender
{
self.textView.text = nil;
// Also tried:
// self.textView.text = @"";
// self.textView.attributedText = nil;
// self.textView.attributedText = [[NSAttributedString alloc] initWithString:@""];
}
- (void)textViewDidChange:(UITextView *)textView
{
NSLog(@"%@", textView.attributedText);
}
@end
die UITextView
Löschen und dann den Buchstaben "d" eingeben protokolliert die folgende:
d{
NSFont = "<UICTFont: 0x8a7e4e0> font-family: \"Helvetica\"; font-weight: normal; font-style: normal; font-size: 12.00pt";
NSParagraphStyle = "Alignment 4, LineSpacing 0, ParagraphSpacing 0, ParagraphSpacingBefore 0, HeadIndent 0, TailIndent 0, FirstLineHeadIndent 0, LineHeight 0/0, LineHeightMultiple 0, LineBreakMode 0, Tabs (\n 28L,\n 56L,\n 84L,\n 112L,\n 140L,\n 168L,\n 196L,\n 224L,\n 252L,\n 280L,\n 308L,\n 336L\n), DefaultTabInterval 0, Blocks (null), Lists (null), BaseWritingDirection 0, HyphenationFactor 0, TighteningFactor 0, HeaderLevel 0";
attribute = value;
}
Meine benutzerdefinierte Attribut ist immer noch da!
Ist dies ein Fehler oder erwartetes Verhalten?
Dies ist die Art, wie ich es (widerwillig) auch tun. – JMarsh