【问题标题】:Adding some space before first line begins UITextView [closed]在第一行开始之前添加一些空格 UITextView [关闭]
【发布时间】:2019-01-25 04:44:56
【问题描述】:

我正在添加帖子屏幕,目前我的 UITextView 屏幕有以下内容:this is how it looks

我希望它基本上看起来像这样:with a space on first line like this

要添加什么代码?

【问题讨论】:

  • 您是否希望仅在用户开始输入一些文本时才添加一些空格?

标签: ios swift xcode uitextview


【解决方案1】:

只需在文本视图中添加前缀\t

yourtextView.text = "\t" + "Your String Text"

textView.text = "\tYour String Text"

【讨论】:

  • 如果用户只在一个地方编辑文本,当然可以。但是,如果您想要一个委托来控制文本在何处编辑,我在下面说明的委托方法将更简洁。
  • 好吧,impression7vx,您的方法只是在按下时不断添加选项卡,因此它根本无法正常工作。如果您可以编辑它,我将不胜感激,这样它就不会继续添加标签
【解决方案2】:

我认为只是覆盖UITextView这两个方法

func textRect(forBounds bounds: CGRect) -> CGRect {
    bounds.origin.x += leftMargin

    return bounds
}

func editingRect(forBounds bounds: CGRect) -> CGRect {
    bounds.origin.x += leftMargin

    return bounds
}

// provide your desired value
let leftMargin = 8 

希望对你有帮助。

【讨论】:

    【解决方案3】:

    虽然这个问题的措辞不是很充分,但您可以这样做

    class ViewController: UIViewController, UITextViewDelegate {
    
        var didTab:Bool = false    
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
            textView = UITextView(frame: CGRect(x:24,y: 100,width: 340,height: 290))
            textView.textColor = UIColor.black
            textView.backgroundColor = UIColor(red: 0.00, green: 0.00, blue: 0.00, alpha: 0.00)
            textView.text = "\tSomeText"
            view.addSubview(textView)
            textView.delegate = self
        }
    
        func textViewDidBeginEditing(_ textView: UITextView) {
            if(!self.didTab) {
                textView.text = "\t\(textView.text)"
            }
            else {
                self.didTab = true
            } 
        }
    }
    

    这会在有人开始输入时为文本添加一个标签。

    【讨论】:

    • 这将在开始输入时添加一个制表符,并且一旦您输入,然后再次开始输入,整个文本将被替换!
    • 你是对的!添加了代码以确保我们只选择一次:P
    • 如何保存输入的内容,以便当他们点击某处并返回时不会被删除?
    • 问题不在于退货。当我按下标题并返回描述时,它只会添加另一个选项卡。点赞是值得的,而不仅仅是给予
    • 我 100% 同意,但您说“如何保存输入的内容,以便当他们单击某处并返回时不会被删除?”不清楚的是,这听起来像“为什么当我按回车时文本会被删除?”另一方面,我编辑了我的答案以包括您不每次都添加选项卡的情况。我的原始答案不包括textViewDidBeginEditing 中的if else 案例。你看过我的编辑吗?它使您只需点击一次。
    【解决方案4】:

    您可以通过以下方式在用户开始输入一些文本时添加一些空格:

    func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
        if textView.text.count == 0 {
            textView.text = "            "
        }
        return true
    }
    

    【讨论】:

      猜你喜欢
      • 2016-02-01
      • 2019-08-08
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      • 2021-06-30
      • 1970-01-01
      • 2015-04-07
      • 1970-01-01
      相关资源
      最近更新 更多