Ich habe versucht, Xcode zu lernen, aber ich bin verwirrt darüber, wie man NSTextField
geändert hat. Im Wesentlichen habe ich eine NSTextField
und eine Schaltfläche. Wenn Sie auf die Schaltfläche klicken, wird der Text in das Feld eingefügt. Ich möchte jedoch in der Lage sein, den Text des Feldes zu erhalten, ohne das Textfeld "Aktion: Senden am Ende der Bearbeitung" zu verwenden. Das heißt, ich möchte in der Lage sein, Text einzugeben und sofort auf die Schaltfläche zu drücken, ohne die Eingabetaste oder die Tabulatur außerhalb des Textfelds zu drücken. Es sieht so aus, als würde man einen Delegaten für mein NSTextField
setzen, der auf
Aber ich verstehe nicht, wie man den eingegebenen Text bekommt. Ich nehme an, dass es etwas mit
zu tun hat %Vor%Aber ich habe wirklich keine Ahnung, wohin ich von dort gehen soll.
Sie sind auf dem richtigen Weg! Das Objekt, das Sie aus dem Benutzerinformationswörterbuch der Benachrichtigung erhalten, ist der Feld-Editor , das ist einfach ein NSTextView
, das die Texteingabe im Namen des Textfelds verarbeitet.
Sobald Sie dieses Objekt haben, müssen Sie es nur nach seinem textStorage
fragen, was ein NSTextStorage
* Objekt mit dem Text. Dieses Objekt wiederum hat sein string
, was ein einfaches altes NSString
ist, das nur die Zeichen enthält.
* Eine Unterklasse von NSAttributedString
, bei der es sich um ein Objekt handelt, das eine Zeichenfolge und zugehörige "Attribute" wie Farbe, Schriftart und Unterstreichung enthält.
Wenn Sie nur ein einzelnes Textfeld bearbeiten, ist das möglicherweise einfacher:
%Vor%Ich ignoriere alle komplizierten Details von NSText und whatnot und verwende einfach die Einfachheit der gesendeten Benachrichtigung und die Einfachheit, den Zeichenfolgenwert aus einem Textfeld zu erhalten.
Tags und Links objective-c cocoa nstextfield notifications delegates