swift - 将 NSTextView 设置为以编程方式或通过 xcode 由 char 包装?
问题描述
网上有几个解决方案,但它们要么已有 10 年历史,不再有效,要么是用目标 C 编写的(而且也非常过时)。一种解决方案涉及 AttributedText 并在每次更新内容时更改换行样式,对我而言,每隔几分钟就会有数百次调用。这肯定不是最好的方法。我必须在这里遗漏一些东西,必须有一种方法可以将 NSTextView 设置为永久由 char 包装。
我已经尝试过了,但它不起作用并继续按字换行:
consoleTextView.textContainer?.lineBreakMode = NSLineBreakMode.byCharWrapping
我也尝试过在 xcode 中使用属性检查器。我终于找到了它的选项,但单击它什么也没做,它只是继续在“换行”字段中说“空选择”:
解决方案
您应该在段落样式上设置换行模式。这是使其工作的最小可能示例:
let textView = NSTextView(frame: CGRect(x: 0, y: 0, width: 100, height: 200))
let paragraphStyle = NSMutableParagraphStyle.default.mutableCopy() as! NSMutableParagraphStyle
paragraphStyle.lineBreakMode = .byCharWrapping
textView.defaultParagraphStyle = paragraphStyle
textView.string = "12345 12345 12345"
view.addSubview(textView)
推荐阅读
- asp.net-core - 特定页面上的左侧导航栏利用每个页面的 MVC 模型数据
- python - 如果浏览器是无头的,脚本行为会发生变化
- machine-learning - 如何计算平均排名(MAR)?
- android - ListPreference 仅在第二次选择条目时更新其值
- reactjs - onClick里面的两个参数
- amazon-web-services - 使用负载均衡器为私有子网中的 RDS 路由流量
- python - Python更新csv文件
- bootloader - 启动时执行 Atmel 引导加载程序
- java - 如何使用 Selenium 计算和选择 Web 表中的某些行?
- javascript - Vuex - 存储状态对象的类型未知