我正在尝试实现一个 NSTextView
,它可以调整大小以适应其内容。我正在尝试使其具有最大数量的行。这意味着,当达到此限制时,它不会进一步增长,用户将能够滚动它。
似乎有很多人想要这个,但我还没有找到完整的实现。
这个想法是获取 NSTextView
的内容大小并调整其大小以使其匹配。我只是不知道如何设置 NSTextView
的布局大小。它似乎不是需要设置的框架
,也不是人们所期望的。
谁能告诉我如何设置NSTextView
的框架?
最佳答案
事实证明,应该更改 ScrollView 的高度。可以通过覆盖 -didChangeText
方法来更改 NSTextView
的高度,如下所示。
- (void)didChangeText
{
NSScrollView *scrollView = (NSScrollView *) self.superview.superview;
NSRect frame = scrollView.frame;
// Calculate height
NSUInteger numberOfLines = [self numberOfLines];
NSUInteger height = frame.size.height;
if (numberOfLines <= 13)
{
height = 22 + (numberOfLines - 1) * 14;
if (height < 22)
height = 22;
}
// Update height
frame.size.height = height;
self.superview.superview.frame = frame;
}
尝试使用常量以获得您想要的结果。
关于macos - 更改 NSTextView 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11196307/