To zależy od tego, w jaki sposób zamierzasz używać tekstu i typu aplikacji, którą piszesz. Jeśli tekst będzie przede wszystkim statyczny i będzie używany jako etykiety lub okna dialogowe w interfejsie użytkownika, to powinno działać poprawnie. Jeśli potrzebujesz wymyślnych animacji, bardziej odpowiednie może być ustawienie CATextLayer
. Jeśli piszesz grę (na przykład pasjans), interfejsy użytkownika będą bardziej podobne i używanie go będzie miało sens. Jeśli piszesz bardziej ogólną aplikację, taką jak klient czatu, interfejsy i sposoby, w jakie użytkownik wchodzi w interakcję z aplikacją, są bardzo różne i prawdopodobnie bardziej sensownym byłoby używanie NSTextFields
lub NSTextViews
.
To wszystko zależy od rodzaju tworzonej aplikacji, ale jeśli jest to bardziej tradycyjna aplikacja, jak na przykład klient czatu, to myślę, że przy użyciu CATextLayer
i konieczności tworzenia wszystkiego w interfejsie programowo, raczej niż używanie NSTextField
i układanie plików w pliku nib, oznaczałoby setki więcej linii kodu. Z drugiej strony, jeśli aplikacja jest bardziej podobna do przykładu z pasjansa, a wymiary warstw i właściwości są zdefiniowane w sposób uwzględniający platformę, na której działa aplikacja, prawdopodobnie można zapisać dużo kodu .
Dla rekordu, NSTextField
jest prawdopodobnie najbliższą równoważną klasą AppKit do UILabel
. NSTextView
jest klasą o większej wadze ciężkiej, która zazwyczaj jest potrzebna tylko wtedy, gdy chcesz wykonać pełne akapity i bardziej zaawansowany skład. Częścią tego, co czyni lżejszą wagę, jest to, że mają one tendencję do udostępniania niewidocznej, pojedynczej NSTextView
(lub jej nadklasy, NSText
) jako edytora pól, który pomaga w wprowadzaniu tekstu. Ponieważ tylko jedno pole tekstowe w aplikacji może być aktywne jednocześnie, może współużytkować zwykły edytor pól, aby poprawić wydajność.