objective-c – 增长NSTextView以适应内容是剪切最后一行文本

objective-c – 增长NSTextView以适应内容是剪切最后一行文本,第1张

概述我正在尝试创建一个NSTextView,当用户键入并在高度达到最大值时滚动,它会垂直增长.这类似于Messages工作中的文本视图. 我的第一次尝试使用委托来监听文本更改并调整与NSTextView的滚动视图关联的高度约束: - (void)textDidChange:(NSNotification *)notification{ NSTextView *textView = self. 我正在尝试创建一个NSTextVIEw,当用户键入并在高度达到最大值时滚动,它会垂直增长.这类似于Messages工作中的文本视图.

我的第一次尝试使用委托来监听文本更改并调整与NSTextVIEw的滚动视图关联的高度约束:

- (voID)textDIDChange:(NSNotification *)notification{    NSTextVIEw *textVIEw = self.textVIEw;    NSRect usedRect = [textVIEw.textContainer.layoutManager usedRectForTextContainer:textVIEw.textContainer];    NSLog(@"DEBUG: used rect: %@",NsstringFromrect(usedRect));    self.textVIEwHeightConstraint.constant = MIN(80.f,MAX(usedRect.size.height,30.f));}

这几乎可以工作:文本视图(滚动视图)的高度在我输入时更新,但是,最后一行文本被剪裁:

一旦滚动视图达到它的最大高度并开始滚动它就可以很好地工作.我试图在封闭的滚动视图上强制显示/布局/约束更新,没有运气.我的猜测是滚动视图的剪辑视图没有正确更新,它正在剪切文本视图的底部.当约束发生变化时,有没有办法强制剪辑视图/滚动视图适当更新?

解决方法 我不确定它是否有用,但是我写了一个垂直扩展的NSTextVIEw子类,它是 available on GitHub.随意看看或调整你想要的. 总结

以上是内存溢出为你收集整理的objective-c – 增长NSTextView以适应内容是剪切最后一行文本全部内容,希望文章能够帮你解决objective-c – 增长NSTextView以适应内容是剪切最后一行文本所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1009178.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-22
下一篇2022-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存