gpt4 book ai didi

macos - 使 NSTextField 可滚动

转载 作者:行者123 更新时间:2023-12-03 17:19:37 28 4
gpt4 key购买 nike

我正在为 OSX 开发一个示例应用程序。我想要一个用户可以输入和编辑文本的文本区域。我希望文本区域随着字符数的增加而增长,并且我想让文本区域可滚动并在超过一定长度后保持其高度固定。我正在使用 NSTextField 来实现此目的。但我无法使其可滚动。为此,我还尝试在 ScrollView 中使用可滚动的 NSTextView 。 NSTextField 不允许我通过界面生成器设置字体和字体大小。

最佳答案

首先,正如您所确定的,您需要计算文本的高度。 Apple 在这里提供了您需要的说明: https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/TextLayout/Tasks/StringHeight.html

然后,您需要更改 NSTextView 的框架或约束(如果您使用自动布局),以将大小调整到预定义的最大值。

如果我是你,我会继承 NSTextView ,然后重写 keyDown: ,以便每当文本更改时都会重新计算大小。是的,这可能不是最有效的解决方案 - 但您有空闲的电源,而且这是一个很好的简单解决方案。

至于设置字体,您需要在文本存储上设置字体 - 而不是在 View 上。操作方法如下:

[textview.textStorage setFont:[NSFont fontWithName:@"Helvetica" size:12]];

如果这对您不起作用,您可以发布不起作用的代码吗?

关于macos - 使 NSTextField 可滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36837311/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com