Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/93.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 UITextView剩余字符_Ios_Swift_Uitextview_Uitextviewdelegate - Fatal编程技术网

Ios UITextView剩余字符

Ios UITextView剩余字符,ios,swift,uitextview,uitextviewdelegate,Ios,Swift,Uitextview,Uitextviewdelegate,如何为UITextView设置UILabel上剩余的字符 我已经为UITextField执行了此操作,但相同的代码不起作用 这就是我尝试过的: func textView(textView: UITextView, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { if string == "" { if

如何为
UITextView
设置
UILabel
上剩余的字符

我已经为
UITextField
执行了此操作,但相同的代码不起作用

这就是我尝试过的:

func textView(textView: UITextView, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool
 {
        if string == ""
        {
            if plainTextView.text!.characters.count == 0
            {
                charCount = 0
                countLabel.text = String(format: "%i Characters Left", maxLength - charCount)
                return false
            }
            charCount = (plainTextView.text!.characters.count - 1)
            countLabel.text = String(format: "%i Characters Left", maxLength - charCount)
            return true
        }
        else
        {
            charCount = (plainTextView.text!.characters.count + 1)
            countLabel.text = String(format: "%i Characters Left", maxLength - charCount)

            if charCount >= maxLength + 1
            {
                charCount = maxLength
                countLabel.text = String(format: "%i Characters Left", maxLength - charCount)
                return false;
            }
        }
        return true
    }
有什么建议吗?

试试这个

import UIKit

class ViewController: UITextViewDelegate {
    let maxLenghth = 200
    
    func textViewDidChange(_ textView: UITextView) {
        countLabel.text = "\(maxLength - textView.text.count)"
    }
    
    func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
        return textView.text.count + (text.count - range.length) <= maxLength
    }
}
导入UIKit
类ViewController:UITextViewDelegate{
设maxLenghth=200
func textViewDidChange(textView:UITextView){
countLabel.text=“\(maxLength-textView.text.count)”
}
func textView(textView:UITextView,shouldChangeTextIn范围:NSRange,replacementText:String)->Bool{
返回textView.text.count+(text.count-range.length)Swift 5

extension AddProperty2ViewController: UITextViewDelegate {

    func textViewDidChange(_ textView: UITextView) {
        p_summary_line_textview.text = "\(5000 - textView.text.count)"
    }


    func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
        return textView.text.count + (text.count - range.length) <= 5000
    }

}
扩展插件AddProperty2ViewController:UITextViewDelegate{ func textViewDidChange(textView:UITextView){ p_summary_line_textview.text=“\(5000-textview.text.count)” } func textView(textView:UITextView,shouldChangeTextIn范围:NSRange,replacementText:String)->Bool{ 返回textView.text.count+(text.count-range.length)
func textViewDidBeginEditing(\utextView:UITextView){
收缩文本()
}
func textViewDidChange(textView:UITextView){
收缩文本()
}
func textViewDidEndEditing(uTEXTVIEW:UITextView){
收缩文本()
}
func收缩文本(){
sendButton.isEnabled=reviewTextField.text==“”?false:true
var text=“”
变量计数器=0
如果reviewTextField.text.count>limit{
reviewTextField.text.forEach{
如果计数器<极限{
计数器+=1
text.append($0)
}否则{
返回
}
}
reviewTextField.text=文本
}
counterLabel.text=“\(reviewTextField.text.count)/\(限制)”
}

请提供您拥有的代码tried@user4261201-更新的问题。你的最大字符数限制是多少?@Anbu.Karthik最大字符数限制是200。@Learn2Code-用这个遗嘱,我没有深入了解,检查这个
func textViewDidBeginEditing(_ textView: UITextView) {
    shrinkText()
}

func textViewDidChange(_ textView: UITextView) {
    shrinkText()
}

func textViewDidEndEditing(_ textView: UITextView) {
    shrinkText()
}


func shrinkText() {
    sendButton.isEnabled = reviewTextField.text == "" ? false : true
    
    var text = ""
    var counter = 0
    
    if reviewTextField.text.count > limit {
        reviewTextField.text.forEach {
            if counter < limit {
                counter += 1
                text.append($0)
            } else {
                return
            }
        }
        reviewTextField.text = text
    }
    counterLabel.text = "\(reviewTextField.text.count) / \(limit)"
}