Я разрабатываю пример приложения для OSX. Я хочу текстовую область, где пользователь может вводить и редактировать текст. Я хочу, чтобы область текста увеличивалась по мере увеличения количества символов, и я хочу сделать прокручиваемую область текста и сохранить ее высоту после того, как она вырастет за определенную длину. Для этого я использую NSTextField. Но я не могу сделать это прокручиваемым. Также я попытался использовать прокручиваемый NSTextView внутри scrollview для этой цели. NSTextField не позволяет мне устанавливать шрифт и размер шрифта через построитель интерфейса.Сделать NSTextField прокручиваемым
ответ
Во-первых, как вы определили, вам нужно рассчитать высоту текста. Яблоко инструкции вам нужно здесь: https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/TextLayout/Tasks/StringHeight.html
Затем вам нужно изменить рамку или ограничения (если вы используете автоматическую раскладку) в NSTextView регулировать размер до заранее определенного максимума.
Если бы я был вами, я бы подкласса NSTextView, а затем переопределял keyDown: так, чтобы размер пересчитывался всякий раз, когда текст был изменен. Да, это может быть не самое эффективное решение, но у вас есть возможность сэкономить, и это неплохое решение.
Что касается установки шрифта, вам необходимо установить шрифт в textstorage - а не на просмотр. Вот как это делается:
[textview.textStorage setFont:[NSFont fontWithName:@"Helvetica" size:12]];
Если это не сработает для вас, можете ли вы опубликовать код, который не работает?
- 1. Сделать RelativeLayout прокручиваемым
- 2. Сделать экран прокручиваемым?
- 3. Как сделать прокручиваемым jPanel
- 4. Qt: сделать QHBoxLayout прокручиваемым
- 5. Как сделать RelativeLayout прокручиваемым
- 6. Как сделать ListView прокручиваемым?
- 7. Сделать UITextView прокручиваемым
- 8. Сделать ngTags прокручиваемым
- 9. сделать JTextArea прокручиваемым
- 10. Как сделать JPanel прокручиваемым?
- 11. Как сделать LinearLayout прокручиваемым
- 12. Как сделать JFrame прокручиваемым?
- 13. Как сделать listviewer прокручиваемым
- 14. Сделать Gist embed прокручиваемым
- 15. Monotouch - сделать UIView прокручиваемым
- 16. Java: Сделать JTextArea прокручиваемым
- 17. Android сделать диалог прокручиваемым
- 18. Как сделать NSTextField недоступным?
- 19. Как сделать элемент ретранслятора прокручиваемым?
- 20. Java SWT сделать ярлык прокручиваемым
- 21. Как сделать этот div прокручиваемым?
- 22. Как сделать это jtable прокручиваемым
- 23. Сделать TextView в макете прокручиваемым
- 24. Как сделать приложение winJS прокручиваемым?
- 25. Как сделать div вертикально прокручиваемым
- 26. Сделать Scrollviewer не вертикально прокручиваемым
- 27. Сделать просмотр прокручиваемым с IB
- 28. Как сделать смайлик прокручиваемым из поля ввода
- 29. Как сделать GtkLabel прокручиваемым в GtkScrolledWindow
- 30. Как сделать редактируемый текст прокручиваемым в android?
NSTextField не должен прокручиваться (как вы обнаружили). Это только для одной строки. NSTextView - это правильное представление о том, чего вы пытаетесь достичь. Вы не говорите, что NSTextView не работает для вас. Не могли бы вы быть более конкретными - и, возможно, опубликовать какой-то код, чтобы мы могли видеть, что вы делаете? – headbanger
@headbanger В принципе, я хочу, чтобы NSTextView увеличивался по мере увеличения текста, но только до некоторой высоты. После этого я хочу прокрутить. Как я могу это достичь? В любом случае я могу рассчитать высоту, требуемую NSTextView во время выполнения? – hcnimkar