Это зависит от того, как вы собираетесь использовать текст, и от типа приложения, которое вы пишете.Если текст будет в основном статичным и использоваться в качестве меток или диалогов в пользовательском интерфейсе, то NSTextField
должно работать нормально.Если вам нужны модные анимации, тогда может подойти CATextLayer
.Если вы пишете игру (например, пасьянс), пользовательский интерфейс будет более похожим, и использование CATextLayer
и CoreAnimation будет иметь смысл.Если вы пишете более общее приложение, такое как чат-клиент, интерфейсы и способы взаимодействия пользователя с приложением сильно различаются, и, вероятно, было бы более разумно использовать NSTextFields
или NSTextViews
.
Опять же, все это зависит от типа приложения, которое вы создаете, но если это более традиционное приложение, такое как пример клиента чата, то я думаю, что при использовании CATextLayer
и необходимости создавать все вПрограммный интерфейс, вместо использования NSTextField
и размещения чего-либо в nib-файле, будет означать сотни и более строк кода.С другой стороны, если приложение больше похоже на пример пасьянса, а размеры слоев и свойств определены таким образом, чтобы учитывать, на какой платформе работает приложение, то вы, вероятно, могли бы сохранить много кода..
Для записи NSTextField
, вероятно, является ближайшим эквивалентом класса AppKit к UILabel
.NSTextView
- это более тяжелый класс, который вам обычно нужен, только если вы хотите сделать полные абзацы и более сложный набор текста.Часть того, что облегчает NSTextField
, заключается в том, что они имеют общий невидимый одиночный NSTextView
(или его суперкласс NSText
) в качестве редактора полей, который помогает с вводом текста.Поскольку только одно текстовое поле в приложении может иметь фокус одновременно, оно может использовать общий редактор полей для повышения производительности.