Frage

Wie kann ich Token, wie NSTokenField, zu einem NStextView?

War es hilfreich?

Lösung

Dies ist eigentlich ein wenig kompliziert. Sie müssen eine benutzerdefinierte NSTextAttachment für jedes „Token“ erstellen und sie in die NSTextStorage für Ihre NSTextView einfügen.

Es gibt einen Systeme die erklärt, wie es zu tun.

Andere Tipps

dachte ich einen einfachen Ansatz heraus, die eine benutzerdefinierte Zelle Klasse für Token verwendet:

  1. eine Zelle Klasse schreiben, die NSTextAttachmentCell erbt und
    - (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView reimplementieren
    Das wird die Klasse sein, die die Token in Ihrem NSTextView darstellt.
  2. So fügen Sie diese Schritte ein Token folgen:
    1. Erstellen Sie eine Instanz von NSTextAttachment
    2. Stellen Sie die Zelle der Anlage zu einer Instanz der Token Zellklasse.
    3. Erstellen Sie einen zugeschrieben String mit diesem Anhang.
    4. Legen Sie die Zeichenfolge zugeschrieben in die Textansicht.

Ein Verfahren, das ein Token in die Textansicht fügt könnte wie folgt aussehen:

- (void)insertAttachmentCell:(NSTextAttachmentCell *)cell toTextView:(NSTextView *)textView
{
    NSTextAttachment *attachment = [NSTextAttachment new];
    [attachment setAttachmentCell:cell];
    [textView insertText:[NSAttributedString attributedStringWithAttachment:attachment]];
}

Dieser Ansatz ist besser geeignet für Token als die von David Sinclair . Es besteht keine Notwendigkeit Datei-Wrapper zu verwenden, da wir dynamische Inhalte (Token) als statische Bilder angezeigt werden sollen. Ein Blick auf Davids Konzepte
könnte allerdings nützlich sein. Er stellt einen guten Ansatz, um den Drag zu implementieren und bzw. fallen. Kopieren Paste-Funktionalitäten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top