我正在为OSX开发示例应用程序。我想要一个用户可以输入和编辑文本的文本区域。我希望文本区域随着字符数量的增加而增长,并且我想让文本区域可以滚动并在超出特定长度后保持其高度不变。我正在使用NSTextField来达到这个目的。但我无法使其滚动。此外,我尝试在scrollview内使用可滚动的NSTextView来达到此目的。 NSTextField不允许我通过“接口”构建器设置字体和字号。使NSTextField可滚动
0
A
回答
0
首先,如您所识别,您需要计算文本的高度。 Apple在此处需要说明: https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/TextLayout/Tasks/StringHeight.html
然后,您需要更改NSTextView的框架或约束(如果您使用自动布局),将大小调整至预定义的最大值。
如果我是你,我会继承NSTextView,然后重写keyDown:以便在文本更改时重新计算大小。是的,这可能不是最有效的解决方案 - 但您有足够的余力,这是一个很好的简单解决方案。
至于设置字体,你需要在文本存储上设置字体 - 而不是在视图上。这是如何做到这一点:
[textview.textStorage setFont:[NSFont fontWithName:@"Helvetica" size:12]];
如果这不适合你,你可以发布不工作的代码?
相关问题
- 1. Cocoa/Obj-C - 如何设置禁用的NSTextField可滚动?
- 2. 可可的NSTextField
- 3. 如何使NSTextField可编辑
- 4. 使用NSScrollView替换NSTextField以获取滚动条
- 5. 使fragment_layout可滚动
- 6. 使UITextView可滚动
- 7. 使ngTags可滚动
- 8. 使JTable可滚动
- 9. 使JTextArea可滚动
- 10. 使ViewController可滚动?
- 11. 如何使2 TextViews可滚动而不使布局可滚动?
- 12. 可可NSTextField行间距
- 13. NSTextField自动完成
- 14. 如何移动NSTextField
- 15. 使垂直滚动条可见和水平滚动条可见
- 16. 使DialogFragment窗口可滚动
- 17. Qt:使QHBoxLayout可滚动
- 18. 如何使svg可滚动
- 19. 使屏幕可滚动?
- 20. 使图像可滚动
- 21. 如何使listviewer可滚动
- 22. 如何使UITableView可滚动
- 23. UITableView使headerView不可滚动
- 24. 无法使JTextArea可滚动..!
- 25. 如何使LinearLayout可滚动
- 26. 如何使RelativeLayout可滚动?
- 27. 如何使UIView可滚动?
- 28. 滚动以使div可见
- 29. JSF使DataTable可滚动
- 30. 为什么NSTextField在表滚动时在NSTableView上留下工件?
NSTextField不应该是可滚动的(就像你发现的那样)。这只适用于一条线。 NSTextView是您试图实现的正确观点。你没有说NSTextView不适合你。你可以更具体一些 - 也许,发布一些代码,以便我们可以看到你在做什么? – headbanger
@headbanger基本上我希望NSTextView随着文本的增加而增长,但只有一些高度。之后,我想滚动。我怎样才能做到这一点?无论如何,我可以在运行时计算NSTextView所需的高度吗? – hcnimkar