【问题标题】:Extra whitespace that causes a newline by UITextView at end is ignored导致 UITextView 最后换行的额外空格被忽略
【发布时间】:2019-10-11 10:12:37
【问题描述】:

这是我的代码:

import UIKit

class ViewController: UIViewController {
    init() {
        super.init(nibName: nil, bundle: nil)

        let textView = UITextView(frame: .zero)
        textView.isScrollEnabled = false
        textView.translatesAutoresizingMaskIntoConstraints = false
        view.addSubview(textView)

        NSLayoutConstraint.activate([
           textView.widthAnchor.constraint(equalToConstant: 150),
            textView.centerXAnchor.constraint(equalTo: view.centerXAnchor),
            textView.centerYAnchor.constraint(equalTo: view.centerYAnchor)
        ])

        // As we can see, LOT'S of whitespace at the end.
        textView.text = "Some Random Text That Has Whitespaces At The End                                                        "

        view.backgroundColor = .yellow
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError()
    }
}

这是结果:

根据空格的数量,它应该创建了一个空的换行符。然而,正如我们所看到的,情况并非如此。如果我在字符串的最后添加另一个字符,将显示换行符(但带有我不想要的字符)。

如果需要,我如何在 UITextView 中显示空换行符?

【问题讨论】:

  • "\n" 怎么样?
  • 请注意,您在 Message.app 上编写消息时的行为相同
  • 等等,你能澄清一下你要做什么吗? 如果需要是什么意思?
  • 我想知道最后使用另一个“不可见”字符是否可以解决问题。
  • 嗯,我不确定文本字段是否会忽略它。 “结束”之后的空间似乎足以容纳文本视图。尝试添加更多空格,看看是否有效。

标签: ios swift uitextfield uitextview nstextcontainer


【解决方案1】:

使用这个:

‏‎ ‏‎

引号内有一些 不可见 字符,iOS 不会将它们算作whiteSpace

【讨论】:

  • 我用过这个,它在 90% 的情况下对我有用,我有一些最后一行仍然被截断。您还有其他解决方案吗?就我而言,我使用的是UILabel
【解决方案2】:

要添加额外的行,例如使用“\n”:

textView.text = "Some Random Text That Has Whitespaces At The End \n\n"

结果:

https://i.imgur.com/ju2hfd0.jpg

【讨论】:

  • 这不能回答问题
  • @J.Doe 发布问题:如果需要,如何在 UITextView 中显示空换行符?答:要添加额外的行使用“\n”是我弄错了吗?
  • 没有。您准确地指出了答案的问题:您总是显示换行符。您从字面上引用了“如果需要”的话。
【解决方案3】:

您可以强制任何 UITextView 的文本具有填充,即从其边缘缩进 - 通过将其 textContainerInset 属性设置为您选择的值。例如,要给文本视图从底部边缘插入 50 点,您可以使用以下代码:

Swift 版本:5.0

textView.textContainerInset = UIEdgeInsets(top: 0, left: 0, bottom: 50, right: 0)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-01
    • 1970-01-01
    • 2019-11-04
    • 2015-03-27
    • 2011-03-28
    • 2013-03-24
    相关资源
    最近更新 更多