2009-08-17 10 views
1

Ich arbeite an einem einfachen Code-Editor in Cocoa. Ich habe eine Textansicht, und ich möchte, dass, wenn der Benutzer zurückkommt, die neue Zeile genauso eingerückt wird wie die vorherige Zeile (wie in Xcode oder einem anderen Code-Editor).Auto-Einzug in einer NSTextView

Mein Problem ist, dass ich nicht herausfinden kann, wie man abfängt, wenn die Return/Enter-Taste gedrückt wird oder wenn eine neue Zeile in der Textansicht erstellt wird. Was wäre der einfachste Weg, dies zu tun?

Antwort

4

Sie können insertNewline: im NSTextView überschreiben, wenn Sie das haben. Sie können auch die Delegate-Methode textView:doCommandBySelector: implementieren, die mit dem Selektor insertNewline: als Argument aufgerufen wird, wenn der Benutzer auf return drückt.

+0

Ich bin mir wirklich nicht sicher, wie das geht. Ich habe eine NSView-Unterklasse erstellt und mit der textView verknüpft. Es nimmt den Befehl jedoch nicht auf. Ich entschuldige mich, wenn das eine dumme Frage ist, oder wenn ich etwas offensichtliches übersehe. Ich bin neu in OS X. –

+1

Ihre Verwendung des Begriffs "textView" ist ziemlich verwirrend - und ich weiß nicht, was es bedeutet, eine NSView-Unterklasse zu einer zu verknüpfen. Wenn Sie eine NSTextView-Unterklasse haben, würden Sie diese überschreiben. – Chuck