当文本视图为空时,该按钮被禁用,否则启用

时间:2016-02-27 17:50:27

标签: swift ios9

我正在开发笔记应用程序,当文本视图为空时,应禁用完成按钮,这样用户就无法将空白笔记保存到数据库中,否则应启用该按钮。

这里是我的代码,我的尝试失败了;我怎么能解决这个问题?

 @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
}

3 个答案:

答案 0 :(得分:2)

  1. 使您的视图控制器符合UITextViewDelegate协议
  2. 在Interface Builder中,将文本视图上的delegate连接到视图控制器。
  3. 将以下功能添加到视图控制器:
  4. func textViewDidChange(textView: UITextView) {
        if textView == self.textView {
            self.doneButton.enabled = !textView.text.isEmpty
        }
    }
    

答案 1 :(得分:0)

尝试使用其他委托方法。这是一个例子:

$(document).ready(function() {

  $("input[type='checkbox']").on('change', function() {
  var lowest =+Infinity;
  var highest = 0;
    $.each($("input[type='checkbox']:checked"),function(){
      lowest = parseInt($(this).data("min")) < lowest ?parseInt($(this).data("min")) : lowest;
      highest = parseInt($(this).data("max")) > highest ?parseInt($(this).data("max")) : highest;  
    });
    
    if (lowest ==0 && highest ==0) {
     $("#price-min").val(1);
      $("#price-max").val(150000);    
    } else {
       $("#price-min").val(lowest);
     $("#price-max").val(highest);
    }
  });
});

答案 2 :(得分:0)

在{{1}}方法中尝试此操作:

{{1}}