我偶然发现NSTextView
中的行为似乎不是故意的,或者至少我不理解其背后的原因。
[当您在NSTextView
中有大量文本并且调整控件/窗口的大小时,仅当文本滚动到顶部附近时,文字换行才流畅且立即while调整大小。如果您向下滚动文本,则不会,并且似乎不会“提交”换行,直到您松开并完成调整大小。
是否存在一些内部限制,或者这是一个错误?
该问题似乎可以重现:
macOS 10.15.4,Xcode 11.4.1
NSTextView
放在默认生成的视图控制器上(与3:富,普通或默认值无关)并对其进行约束,以便其随窗口(顶部,底部,前导,尾随)调整大小。NSTextView
的顶部,观察文本如何换行while调整窗口大小希望那里有任何可可侦探可以对此有所启发。
如果NSTextView
包含在滚动视图中,则可能需要在调整大小时确保其布局。
- (void)windowDidResize:(NSNotification *)notification {
[textView.layoutManager ensureLayoutForTextContainer:textView.textContainer];
[textView setNeedsDisplay:YES];
}