【问题标题】:Set NSTextView to wrap by char either programmatically or through xcode?将 NSTextView 设置为以编程方式或通过 xcode 由 char 包装?
【发布时间】:2019-07-11 08:12:49
【问题描述】:

网上有几个解决方案,但它们要么已经使用了 10 年,不再有效,要么是用目标 C 编写的(而且也非常过时)。一种解决方案涉及 AttributedText 并在每次更新内容时更改换行样式,对我来说,每隔几分钟就会有数百次调用。这肯定不是最好的方法。我必须在这里遗漏一些东西,必须有一种方法可以将 NSTextView 设置为永久由 char 包装。

我试过了,但它不起作用并继续按字换行:

consoleTextView.textContainer?.lineBreakMode = NSLineBreakMode.byCharWrapping

我也尝试过在 xcode 中使用属性检查器。我终于找到了它的选项,但点击它什么也没做,它只是继续在“换行”字段中说“空选择”:

【问题讨论】:

    标签: swift xcode macos


    【解决方案1】:

    您应该在段落样式上设置换行模式。这是使其工作的最小可能示例:

    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)
    

    【讨论】:

    • 谢谢,这让我发疯了
    【解决方案2】:

    任何寻找客观 c 答案的人都会使用类似于:

    NSMutableParagraphStyle * paragraphStyle = [[NSMutableParagraphStyle alloc] init];
    paragraphStyle.lineBreakMode = NSLineBreakByCharWrapping;
    
    myTextView.defaultParagraphStyle = paragraphStyle;
    

    【讨论】:

      猜你喜欢
      • 2014-09-08
      • 1970-01-01
      • 1970-01-01
      • 2018-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多