Es hängt davon ab, wie Sie den Text und die Art der Anwendung verwenden möchten, die Sie schreiben. Wenn der Text hauptsächlich statisch ist und als Beschriftungen oder Dialoge in der Benutzeroberfläche verwendet wird, sollte NSTextField
in Ordnung funktionieren. Wenn Sie ausgefallene Animationen benötigen, dann ist CATextLayer
möglicherweise besser geeignet. Wenn Sie ein Spiel schreiben (Solitaire zum Beispiel), werden die UIs ähnlicher und die Verwendung von CATextLayer
und CoreAnimation sinnvoll. Wenn Sie eine allgemeinere Anwendung wie einen Chat-Client schreiben, sind die Schnittstellen und Möglichkeiten, mit denen der Benutzer mit der App interagiert, sehr unterschiedlich, und es wäre wahrscheinlich sinnvoller, NSTextFields
oder NSTextViews
zu verwenden.
Auch dies hängt alles von der Art der App, die Sie erstellen, aber wenn es eine traditionelle App wie das Chat-Client-Beispiel ist, würde ich denken, dass mit CATextLayer
und alles in der Schnittstelle programmatisch zu erstellen, eher als NSTextField
zu verwenden und Sachen in einer Nib-Datei auszugeben, würde Hunderte von mehr Zeilen Code bedeuten. Auf der anderen Seite, wenn die App eher dem Solitaire-Spiel ähnelt und die Dimensionen der Layer und Eigenschaften so definiert sind, dass die Plattform, auf der die App läuft, berücksichtigt wird, könnte man wahrscheinlich viel Code sparen .
Für den Datensatz, NSTextField
ist wahrscheinlich die nächste entsprechende AppKit-Klasse UILabel
. NSTextView
ist eine schwerere Klasse, die Sie im Allgemeinen nur benötigen, wenn Sie vollständige Absätze und erweiterte Schriftsatz tun möchten. Ein Teil von dem, was NSTextField
leichter macht, ist, dass sie dazu neigen, eine unsichtbare, einzige NSTextView
(oder ihre Oberklasse, NSText
) als Feld-Editor zu teilen, die bei der Texteingabe hilft. Da nur ein Textfeld in einer App gleichzeitig den Fokus haben kann, kann ein gemeinsamer Feld-Editor zur Verbesserung der Leistung verwendet werden.