the button is disabled when text view is empty else is enabled

喜夏-厌秋 提交于 2019-12-04 06:22:03

问题


I'm developing note app, when the text view is empty the done button should be disabled so user could not be able to save empty notes into data base, else the button should be enabled.

here's my code below, my attempts have failed; how I can solve this problem?

 @IBOutlet weak var textView: UITextView!
 @IBOutlet weak var done: UIBarButtonItem!

 override func viewDidLoad() {
        super.viewDidLoad()

        title = note?.text
        if (self.textView.text.isEmpty){
            done.enabled = false
        }
        if let noteContent = note

        {
            textView.text = noteContent.text
        }

         self.navigationController!.toolbarHidden = false;
    }

  func textViewShouldBeginEditing(textView: UITextView) -> Bool{
done.enabled = true

    return done.enabled
}

回答1:


  1. Make your view controller conform to UITextViewDelegate protocol
  2. In Interface Builder, connect the delegate on the text view to your view controller.
  3. Add the following function to your view controller:

func textViewDidChange(textView: UITextView) {
    if textView == self.textView {
        self.doneButton.enabled = !textView.text.isEmpty
    }
}



回答2:


Try to use another delegate method for you're purpose. This is example :

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var button: UIButton!
    @IBOutlet weak var textView: UITextView!

    override func viewDidLoad() {
        super.viewDidLoad()

        textView.delegate = self

        if (textView.text.isEmpty) {
            button.enabled = false
        }
    }
}

extension ViewController: UITextViewDelegate {

    func textView(textView: UITextView, range: NSRange, replacementText text: String) -> Bool
    {
        if (!textView.text.isEmpty) {
            button.enabled = true
        } else {
             button.enabled = false
        }
        return true
    }
}



回答3:


Try this in textViewDidChange method:

yourBarButtonItem.isEnabled = !(yourTextField.text?.isEmpty ?? false)


来源:https://stackoverflow.com/questions/35673249/the-button-is-disabled-when-text-view-is-empty-else-is-enabled

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!