NSTextField или NSTextView?

Кто-то мог объяснить мне, каковы основные отличия между NSTextField и NSTextView? Я знаю, что NSTextView имеет больше функций и обычно используется для более длинных текстов, и NSTextField обычно используется для коротких полей простого текста, но если я понимаю правильно, NSTextField может также использоваться с приписанными строками и с несколькими строками...

В чем я нуждаюсь, конкретно управление, которое отобразило бы текст сообщений в представлении временной шкалы как в Tweetie или любом другом подобном программном обеспечении. Единственные требования, которые я имею:

  • это должно отобразить текст приблизительно в 1-4 строках
  • это должно быть в состоянии показать ссылки в тексте (как я понимаю, это должно быть просто в обоих средствах управления - http://developer.apple.com/mac/library/qa/qa2006/qa1487.html),
  • это должно позволить пользователю выбрать и скопировать текст
  • это не должно позволять пользователю прокрутить текст, отредактировать текст или показать контекстное меню, которое обычно появляется в доступных для редактирования текстовых полях, это не должно даже показывать текстовый курсор в этом поле

С такими требованиями это лучше, чтобы я использовал NSTextField или NSTextView? Действительно ли NSTextField достаточно хорош, или делает NSTextView, имеет что-то важное, которое не делает NSTextField?

29
задан Kuba Suder 7 March 2010 в 22:07
поделиться

1 ответ

Не мог бы кто-нибудь объяснить мне, в чем основные различия между NSTextField и NSTextView? Я знаю, что NSTextView имеет больше возможностей и обычно используется для более длинных текстов, а NSTextField обычно используется для однострочных полей обычного текста, но если я правильно понимаю, NSTextField может также использоваться с приписанными строками и с несколькими строками...

Технически верно, но вы обычно используете текстовые поля для значений, которые являются обычным текстом и обычно только в одну строку. (Работайте с несколькими строками, поскольку текстовое поле может их принимать. Если нет ничего другого, разделите разрывы строк так, чтобы это имело смысл для того, что вы делаете с текстом.)

  • он должен отображать текст примерно в 1-4 строки

NSTextView.

NSTextView. Поддержка ссылок в NSTextField сложна.

  • он должен позволять пользователю выбирать и копировать текст

Для этого подойдет любой из вариантов.

  • он НЕ должен позволять пользователю прокручивать текст,

NSTextField или NSTextView без NSScrollView. Последнее можно сделать в IB, перетащив текстовое представление из библиотеки, а затем выбрав "Unembed Objects" из меню Layout.

отредактируйте текст,

Для этого подойдет любой из вариантов.

или показать контекстное меню, которое обычно появляется в редактируемых текстовых полях,

Да, оно должно. Вы всегда должны предлагать такие пункты меню, как "Копировать" и "Только чтение". Любой из элементов управления должен делать это за вас; не боритесь с этим.

он даже не должен показывать текстовый курсор в этом поле

Любой из них будет работать для этого.

Если вы оставите выделение включенным (что обычно следует делать), они покажут курсор, если пользователь щелкнет в поле. Это особенность, поскольку она показывает, где находится якорь выбора для выбора с помощью стрелки со сдвигом.

С такими требованиями мне лучше использовать NSTextField или NSTextView?

Я бы использовал NSTextView.

36
ответ дан 28 November 2019 в 01:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: