问题标签 [nstextcontainer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 防止 UITextView 偏移其文本容器
我正在尝试UITextView
在用户输入文本时动态修改 a 的高度(最高为最大高度)。当文本视图中有偶数行时,我遇到了一种非常奇怪的行为。
我正在使用自动布局,并且文本视图有高度限制。我响应对文本视图的委托 ( textViewDidChange(_:)
) 的调用,在其中我根据contentSize
.
这是代码:
这很好用,它将框架调整到最大MaxTextViewHeight
,然后文本视图可以滚动。但是,当文本视图中有偶数行时,文本视图会在其底部添加一种偏移量NSTextContainer
,从而导致顶部行被截断:
但是,当有奇数行时,NSTextContainer
不再偏移:
起初我以为它以某种方式受到文本视图的控制,textContainerInset
但这仅用于填充内部的空间NSTextContainer
,因为将其设置为.zero
删除内部空间但不影响偏移量(顺便说一下,它会变得更糟,因为顶部线几乎完全消失):
我查看了UITextView
类引用,没有看到任何可以让我操纵甚至获取此偏移值的属性。
作为一种解决方法,我增加了文本容器的顶部插图并删除了底部插图:
到目前为止,这是可行的,但我通过反复试验得出了 10 的值,到目前为止,我只在单个设备上对其进行了测试。
我对需要脆弱的固定值的更hacky解决方法不感兴趣;我试图了解如何设置此偏移量以及修复它的正确方法。希望有人能提供一些见解,谢谢!
ios - 如何使用 NSTextStorage 获取最大行数的字符串高度?
我正在尝试获取属性字符串的高度(对于任何字体、任何语言、任何奇怪的 utf8 字符等)。
我在 Badoo Chatto 上发现了这个关于不同解决方案的有趣话题:https ://github.com/badoo/Chatto/issues/129
我正在使用的解决方案是他们的:
如何修改此逻辑以便它可以考虑最大行号?
我尝试添加container.maximumNumberOfLines = 2
,但它不会改变任何东西,因为 NSTextContainer 设置为无限高。
理想情况下,我想避免使用任何 UIView 或子视图,因为此处理必须在后台线程中完成。此外,任何基于 UIKit 的解决方案似乎都不是 100% 可靠的(参见 Badoo Chatto 链接)。
ios - UITextView 在调整大小时删除临时空行
我有一个UITextView
可能会改变大小的东西。滚动被禁用。这里发生了什么:
有什么办法可以防止这种奇怪的行为,但也可以保持 lineBreakMode .byTruncatingTail
?(删除此选项会产生预期的调整大小结果)
操场代码,因此您可以轻松地重现此代码:
swift - 如何在 NSTextTable 中获取选定的文本块
再会,
我最近一直在为此苦苦挣扎。我想知道如何获取选定的 NSTextTable 文本块,以便我可以在下方和上方添加块,我还想知道用户何时编辑 NSTextTable。
swift - 如何在 NSTextContainer 而不是 NSTextStorage 中获取属性字符串
再会,
我试图获取 NSTextContainer 而不是 NSTextStorage 的属性字符串,任何时候我使用返回 textView 的属性字符串的方法,它都会返回 NSTextStorage 的属性字符串,我只想要那个边界矩形的属性字符串?有什么建议么?这几天我一直在为此苦苦挣扎。
我会很感激任何帮助。
谢谢
swift - 如何删除 NSTextContainer 并导致 NSLayoutManager 重新排列而不是使布局无效
再会,
当我从 NSLayoutManager 中删除指定索引处的 NSTextContainer 时,它会导致整个布局无效,这意味着剩余的 NSTextContainers 没有布局管理器。是否有可能我可以删除一个 NSTextContainer 并且 NSLayoutManager 会将文本存储的属性字符串重新排列到剩余的 NSTextContainer 上。如果您有任何想法,我将不胜感激。谢谢