NSTextField czy NSTextView?

Mógłby mi ktoś wyjaśnić jakie są główne różnice między NSTextField a NSTextView? Wiem, że NSTextView ma więcej funkcji i jest zwykle używany do dłuższych tekstów, a NSTextField jest zwykle używany do jednowierszowych pól tekstowych, ale jeśli dobrze rozumiem, NSTextField może być również używany z przypisanymi ciągami znaków i wieloma liniami...

To, czego potrzebuję, to kontrolka, która wyświetla tekst wiadomości w widoku osi czasu, jak w Tweetie lub innym podobne oprogramowanie. Jedyne wymagania jakie mam to:

  • powinien wyświetlać tekst w około 1-4 liniach
  • powinno być w stanie wyświetlać linki w tekście (jak rozumiem, powinno to być proste w obu kontrolkach - http://developer.apple.com/mac/library/qa/qa2006/qa1487.html )
  • powinno pozwolić użytkownikowi wybrać i skopiować tekst
  • nie powinien pozwolić użytkownikowi przewijać tekstu, edytować tekstu ani pokazywać menu kontekstowego, które zwykle pojawia się w edytowalnych polach tekstowych, nie powinieneś nawet pokazywać kursora tekstowego w tym polu

Przy takich wymaganiach, czy lepiej jest użyć nstextfield lub NSTextView? Czy NSTextField jest wystarczająco dobre, czy NSTextView ma coś ważnego, czego NSTextField nie ma?

Author: Kuba Suder, 2010-03-08

1 answers

Czy mógłby mi ktoś wyjaśnić jakie są główne różnice między NSTextField a NSTextView? Wiem, że NSTextView ma więcej funkcji i jest zwykle używany do dłuższych tekstów, a NSTextField jest zwykle używany do jednowierszowych pól tekstowych, ale jeśli dobrze rozumiem, NSTextField może być również używany z przypisanymi ciągami znaków i wieloma liniami...

Technicznie prawda, ale zwykle używa się pól tekstowych dla wartości, które są zwykłym tekstem i zwykle tylko jedną linią. (Uchwyt wiele linii, jako pole tekstowe może je zaakceptować. Jeśli nic innego, Usuń podziały linii w sposób, który ma sens dla tego, co robisz z tekstem.)

  • powinien wyświetlać tekst w około 1-4 liniach

NSTextView.

NSTextView. Obsługa linków w NSTextField jest trudna.

  • powinno pozwolić użytkownikowi wybrać i skopiować tekst
/ Align = "left" /
  • nie powinno pozwolić użytkownikowi przewijać tekstu,

NSTextField lub NSTextView bez NSScrollView. Możesz to zrobić w IB, przeciągając widok tekstowy z biblioteki, a następnie wybierając z menu Układ "Obiekty Nieembed".

Edytuj tekst,

/ Align = "left" /

Lub Pokaż menu kontekstowe, które zwykle pojawia się w edytowalnych polach tekstowych,

Tak, powinno. Zawsze powinieneś oferować pozycje menu, takie jak" Kopiuj " i usługi tylko do odczytu. Kontrola powinna to zrobić za Ciebie, nie walcz z tym.

Nie powinno nawet pokazywać kursora tekstowego w tym polu

/ Align = "left" /

Jeśli pozostawisz zaznaczenie włączone (co zazwyczaj powinieneś), będą one pokazuje kursor, jeśli użytkownik kliknie w polu. Jest to cecha, ponieważ wskazuje, gdzie Kotwica wyboru jest dla zaznaczenia shift - ⌘ - strzałka.

Przy takich wymaganiach, czy lepiej jest użyć nstextfield lub NSTextView?

Użyłbym NSTextView.

 35
Author: Peter Hosey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-08 02:36:01