Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.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
Swift 当文本视图为空时,该按钮被禁用,否则将启用_Swift_Ios9 - Fatal编程技术网

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

Swift 当文本视图为空时,该按钮被禁用,否则将启用,swift,ios9,Swift,Ios9,我正在开发便笺应用程序,当文本视图为空时,应禁用“完成”按钮,以便用户无法将空便笺保存到数据库中,否则应启用该按钮 下面是我的代码,我的尝试失败了;我怎样才能解决这个问题 @IBOutlet weak var textView: UITextView! @IBOutlet weak var done: UIBarButtonItem! override func viewDidLoad() { super.viewDidLoad() title = no

我正在开发便笺应用程序,当文本视图为空时,应禁用“完成”按钮,以便用户无法将空便笺保存到数据库中,否则应启用该按钮

下面是我的代码,我的尝试失败了;我怎样才能解决这个问题

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

试着使用另一个委托方法来达到你的目的。例如:

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

试着使用另一个委托方法来达到你的目的。例如:

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
    }
}
  • 使视图控制器符合
    UITextViewDelegate
    协议
  • 在Interface Builder中,将文本视图上的
    委托连接到视图控制器
  • 将以下功能添加到视图控制器:

  • 使视图控制器符合
    UITextViewDelegate
    协议
  • 在Interface Builder中,将文本视图上的
    委托连接到视图控制器
  • 将以下功能添加到视图控制器:


  • textViewDidChange
    方法中尝试此操作:

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

    textViewDidChange
    方法中尝试此操作:

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

    “我的尝试失败了”它们在哪里?我看不到您对文本中的更改有任何响应。@马特查看上面的代码,如果文本视图为空,则在
    viewDidLoad
    函数中单击disable按钮,如果文本视图为空,则在
    textview应开始编辑
    函数enable done按钮中单击“我的尝试已失败”,它们在哪里?我看不出您对文本中的更改有任何响应。@马特查看上面的代码,如果文本视图为空,请在
    viewdiload
    函数中单击“禁用”按钮,在
    textViewShouldBeginEditing
    函数中,如果文本视图不为空,则启用“完成”按钮了解一点关于UITextViewDelegate的信息此代码现在在我的项目中工作尝试了解一点关于UITextViewDelegate的信息此代码现在在我的项目中工作