Кто-то мог объяснить мне, каковы основные отличия между NSTextField и NSTextView? Я знаю, что NSTextView имеет больше функций и обычно используется для более длинных текстов, и NSTextField обычно используется для коротких полей простого текста, но если я понимаю правильно, NSTextField может также использоваться с приписанными строками и с несколькими строками...
В чем я нуждаюсь, конкретно управление, которое отобразило бы текст сообщений в представлении временной шкалы как в Tweetie или любом другом подобном программном обеспечении. Единственные требования, которые я имею:
С такими требованиями это лучше, чтобы я использовал NSTextField или NSTextView? Действительно ли NSTextField достаточно хорош, или делает NSTextView, имеет что-то важное, которое не делает NSTextField?
Не мог бы кто-нибудь объяснить мне, в чем основные различия между NSTextField и NSTextView? Я знаю, что NSTextView имеет больше возможностей и обычно используется для более длинных текстов, а NSTextField обычно используется для однострочных полей обычного текста, но если я правильно понимаю, NSTextField может также использоваться с приписанными строками и с несколькими строками...
Технически верно, но вы обычно используете текстовые поля для значений, которые являются обычным текстом и обычно только в одну строку. (Работайте с несколькими строками, поскольку текстовое поле может их принимать. Если нет ничего другого, разделите разрывы строк так, чтобы это имело смысл для того, что вы делаете с текстом.)
- он должен отображать текст примерно в 1-4 строки
NSTextView.
- он должен уметь показывать ссылки в тексте (как я понимаю, это должно быть просто в обоих контролах - http://developer.apple.com/mac/library/qa/qa2006/qa1487.html)
NSTextView. Поддержка ссылок в NSTextField сложна.
- он должен позволять пользователю выбирать и копировать текст
Для этого подойдет любой из вариантов.
- он НЕ должен позволять пользователю прокручивать текст,
NSTextField или NSTextView без NSScrollView. Последнее можно сделать в IB, перетащив текстовое представление из библиотеки, а затем выбрав "Unembed Objects" из меню Layout.
отредактируйте текст,
Для этого подойдет любой из вариантов.
или показать контекстное меню, которое обычно появляется в редактируемых текстовых полях,
Да, оно должно. Вы всегда должны предлагать такие пункты меню, как "Копировать" и "Только чтение". Любой из элементов управления должен делать это за вас; не боритесь с этим.
он даже не должен показывать текстовый курсор в этом поле
Любой из них будет работать для этого.
Если вы оставите выделение включенным (что обычно следует делать), они покажут курсор, если пользователь щелкнет в поле. Это особенность, поскольку она показывает, где находится якорь выбора для выбора с помощью стрелки со сдвигом.
С такими требованиями мне лучше использовать NSTextField или NSTextView?
Я бы использовал NSTextView.