如何在swift中删除textView的最后一行文本?

时间:2018-04-04 23:31:20

标签: ios swift uitextview

我有UITextView。我正在使用UITextField方法添加一些用append()写的文字。我试图删除UITextView的最后一行,但我发现只有removeLast()方法。在swift中是否有任何方法可以删除最后一行,或者我应该自己编写一个方法吗?如果我应该写一个方法,我怎么写?

正如您在图片中看到的那样,我尝试做的是填充UITextField并将其保存到UITextView。当我按下"清除"按钮,我希望它只删除UITextView的最后一行(在这张图片中是Jane Doe UNKNOWN)。

class ViewController: UIViewController {
    @IBOutlet weak var firstName: UITextField!
    @IBOutlet weak var lastName: UITextField!
    @IBOutlet weak var dpt: UITextField!
    @IBOutlet weak var textView: UITextView!

    @IBAction func save(_ sender: UIButton) {
        textView.text.append(firstName.text! + " " + lastName.text! + " " + dpt.text! + "\n")
    }

    @IBAction func clear(_ sender: UIButton) {
    }

    @IBAction func cancel(_ sender: UIButton) {
        firstName.text = " "
        lastName.text = " "
        dpt.text = " "
    }
}

The image of my project.

3 个答案:

答案 0 :(得分:0)

如果我正确地解释了您的问题,您正在使用append()将textField中的文本添加到textView中,并且您希望能够删除以这种方式添加的文本。 一种方法是在添加新文本之前将文本保存在textView中,然后您可以在textView中再次显示“删除最后一行”,例如:

var textPriorToAppend = textView.text
// Then append text
// If you want to revert to previous text
textView.text = textPriorToAppend

答案 1 :(得分:0)

您好,可以为UITextview或String

创建扩展
extension String { 
    func removeLastLine()->String {
        var comps = self.split(separator: "\n")
        comps.removeLast()
        var outputString = ""
        var br = ""
        for sub in comps {
            outputString.append(br+String(sub))
            br = "\n"
        }
        return outputString
    }
}


 extension TextView { 
    func removeLastLine(){
        var comps = self.text.split(separator: "\n")
        comps.removeLast()
        var outputString = ""
        var br = ""
        for sub in comps {
             outputString.append(br+String(sub))
            br = "\n"
        }
        self.text = outputString
    }
}

答案 2 :(得分:0)

根据您的新信息;我建议您实际上希望能够存储一组信息(名字,姓氏和部门)并删除整个组。将信息存储为结构然后将人员存储在数组中可能更有效。然后,您可以显示数组中的人员并更轻松地操作它们。例如,在你的班级里面:

  struct Person {
    var first: String
    var last: String
    var dept: String
    }

// Declare an empty array of people
var arrayOfPeople: [Person] = []

@IBAction fun save(_ sender: UIButton) {
     let newPerson = Person(first: firstName.text, last: lastName.text, dept: dpt.text)
     arrayOfPeople.append(newPerson)
}

然后你可以轻松地操作数组,并有一个单独的函数来显示你喜欢的数组的结果(例如,如果你真的想要在textView中;更常见的是在表中)

相关问题