Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 键入和计数新行时的TextView计数器_Ios_Swift_Uitextview_Uitextviewdelegate - Fatal编程技术网

Ios 键入和计数新行时的TextView计数器

Ios 键入和计数新行时的TextView计数器,ios,swift,uitextview,uitextviewdelegate,Ios,Swift,Uitextview,Uitextviewdelegate,我想计算textview中的换行符(“\n”) 或者,更具体地说,我想使textview框在标签中键入(+1)时计数字符。当文本有新行时,计数(+2),计数器(标签)必须连续 这是我的密码: func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool { let allowedChars = 70 let char

我想计算textview中的换行符(“\n”)

或者,更具体地说,我想使textview框在标签中键入(+1)时计数字符。当文本有新行时,计数(+2),计数器(标签)必须连续

这是我的密码:

func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
    let allowedChars = 70
    let charsInTextView = -txtmessage.text.count
    let remainingChars = allowedChars + charsInTextView

    if (text == "\n") {
        let remainingChars = 70 - (txtmessage.text.count * 2 )

        countlabel.text = String(remainingChars)
    }

    if (text != "\n"){
        countlabel.text = String(remainingChars)
    }

    return true
}
import UIKit
import PlaygroundSupport
class ViewController: UIViewController {
    let textView = UITextView(frame: CGRect(origin: .zero, size: CGSize(width: 100, height: 100)))
    override func viewDidLoad() {
        super.viewDidLoad()
        view.addSubview(textView)
        textView.delegate = self
        textView.backgroundColor = .white
    }
}

extension ViewController: UITextViewDelegate {
    func textViewDidChange(_ textView: UITextView) {
        guard let text = textView.text else  {
            return
        }
        let totalLength = text.count
        let newlineCount = text.filter {$0 == "\n"}.count
        print("Total characters are \(totalLength) of which \(newlineCount) are newLines total of all characters counting newlines twice is \(totalLength + newlineCount)")
    }
}
let v = ViewController()
v.preferredContentSize = CGSize(width: 1024, height: 768)
PlaygroundPage.current.liveView = v