Wegen der Semantik bestimmter NSTextView Anhänge in meiner Anwendung, möchte ich wissen, wenn sie von meinem Textspeicher eingefügt oder gelöscht werden.Woher weiß ich, wann ein Anhangsattribut zu meiner NSTextView hinzugefügt wird?
Meine Unterklasse von NSTextView implementiert die sentChangeTextInRange: ErsetzungString: -Methode, mit der ich leicht sehen kann, wenn ein Anhang ersetzt werden soll (ich kann den Textspeicher im angegebenen Bereich durchsuchen).
Da der Ersatz-String nur ein NSString und kein NSAttributedString, habe ich keine Möglichkeit aus diesem Verfahren zu sehen, ob ein Anhang eingefügt wird. Die Dokumentation geht sogar so weit zu sagen, dass die Zeichenkette gleich null sein kann, wenn "nur Attribute" bearbeitet werden.
Die Frage ist also, was ist der beste Überschreibung Punkt zu sehen, wenn eine Anlage eingesetzt wird? Oder vielleicht so nützlich: Was ist der beste Überschreibungspunkt, wenn Attribute geändert werden?
Update: I I oben gesagt, ob eine Anlage eingefügt wird nicht wissen, hatte. Es wird darauf hingewiesen, dass ich sagen kann, dass "ein" Anhang beteiligt ist, weil die Zeichenfolge den magischen NSAttachmentCharacter enthält. Aber ich werde keine spezifischen Informationen über den Anhang haben, bis die Bearbeitung abgeschlossen ist.
Danke, Brian. Es ist nicht so ideal, wie ich es mir erhofft habe, aber es scheint, als würde es den Trick bringen. Es ist eine Schande, dass sie die Attribute in der sentChange ... -Methode nicht enthalten. – danielpunkass
Soweit ich das beurteilen kann, '-textStorageWillProcessEditing:' erlaubt mehr Änderungen am Text als '-textStorageDidProcessEditing:'. Vielleicht möchten Sie das stattdessen verwenden. –