美文网首页键盘
swift 重写带占位符的textView

swift 重写带占位符的textView

作者: mapg | 来源:发表于2017-03-24 16:28 被阅读222次
    1.png 2.png 3.png
    //简单使用
    @IBOutlet weak var feedbackTV: PlaceholderTextView!
    feedbackTV.overrideSelf(frame: feedbackTV.frame)
    feedbackTV.palceStr = feedbackStr
    
    
     @IBAction func commitFeedbackAction(_ sender: Any) {
            feedbackTV.hiddenKeyBoard()
            if feedbackTV.inputStr == "" {
                self.showHint("您没有输入任何信息")
                return
            }
            
            if feedbackTV.inputStr == feedbackStr {
                self.showHint("您没有输入任何信息")
                return
            }
      }
    
    
    import UIKit
    
    typealias PlaceholderTextViewBlock = (_ inputStr:String) -> Void
    
    class PlaceholderTextView: UIView,UITextViewDelegate{
        var pblock:PlaceholderTextViewBlock?
        func backInpuStr(block:@escaping PlaceholderTextViewBlock){
           pblock = block
        }
        //站位信息
        @IBInspectable var palceStr:String = ""{
            didSet{
               self.textView.text = self.palceStr
               self.textView.textColor = UIColor.gray
            }
        }
    
        var inputStr = "" //输入的信息
        
        lazy var textView:UITextView = {
            let tv = UITextView()
            tv.delegate = self
            tv.text = self.palceStr
            tv.textColor = UIColor.gray
            tv.backgroundColor = UIColor.clear
            tv.font = UIFont.systemFont(ofSize: 15)
            return tv
        }()
        
        func overrideSelf(frame: CGRect) {
            self.frame = frame
            addTextView()
        }
        
        func addTextView(){
            self.textView.frame = CGRect(x: 0, y: 0, width: self.frame.width, height: self.frame.height)
            self.addSubview(self.textView)
        }
        
        func textViewDidBeginEditing(_ textView: UITextView) {
            if textView.text == palceStr {
                textView.text = ""
            }
            textView.textColor = UIColor.black
        }
        
        func textViewDidEndEditing(_ textView: UITextView) {
            //如果为空或者输入的信息与站位信息一样
            inputStr = textView.text
            if textView.text == "" || textView.text == palceStr {
                textView.text = palceStr
                textView.textColor = UIColor.gray
            }else{
                textView.textColor = UIColor.black
            }
            if let block = pblock {
                block(inputStr)
            }
        }
    }
    

    相关文章

      网友评论

        本文标题:swift 重写带占位符的textView

        本文链接:https://www.haomeiwen.com/subject/piefottx.html