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