Подтвердить что ты не робот

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 не делает?

4b9b3361

Ответ 1

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

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

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

NSTextView.

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

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

Либо это будет работать.

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

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

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

Либо это будет работать.

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

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

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

Либо это будет работать.

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

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

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