Ich versuche, eine benutzerdefinierte Tastatur für iOS zu erstellen, die Bilder verwendet, die ich als Schaltflächen eingefügt habe. Wenn ich eine Taste drücke, wird das Bild, das mit der Schaltfläche verknüpft ist, in eine attributierte Zeichenfolge eingefügt, die in eine UiTextView in der benutzerdefinierten Tastaturansicht geladen wird. Das funktioniert.Hinzufügen von Bildern als Textanhang in Swift mit nsattributedstring
Das Problem ist, dass, wenn ich ein neues Bild an die attributierte Zeichenfolge anfügen, die alten und neuen Bilder in der Zeichenfolge zu dem Bild wechseln, das ich gerade gedrückt habe. Ich kann nicht verstehen, warum sich die alten Bilder in der Zeichenkette ändern.
Irgendwelche Vorschläge? Ich habe versucht, replaceCharactersInRange und insertAttributedString, aber es kann nicht funktionieren. Hier ist der Code (nach viewDidLoad):
let textAttachment = NSTextAttachment()
let textView = UITextView(frame: CGRectMake(5, 5, 200, 40))
var attributedString = NSMutableAttributedString(string: "")
@IBAction func buttonPressed(button :UIButton) {
let string = button.titleLabel?.text
textAttachment.image = UIImage(named: "\(string!).png")!
textAttachment.image = UIImage(CGImage: textAttachment.image!.CGImage!, scale: 6, orientation: .Up)
let attrStringWithImage = NSAttributedString(attachment: textAttachment)
attributedString.appendAttributedString(attrStringWithImage);
textView.attributedText = attributedString;
}
Vielen Dank!
Wenn ich 2 verschiedene Bilder angehängt haben, wie konnte ich erkennen, die man im Klick? Ich habe den Code erstellt, um etwas zu drucken, wenn ein Bildanhang angeklickt wird, aber ich muss verschiedene Aktionen abhängig vom Bild realisieren. –
Ist es auch möglich, ein Video anzuhängen? –