当文本视图为空时按钮被禁用,否则启用
the button is disabled when text view is empty else is enabled
我正在开发笔记应用程序,当文本视图为空时,应该禁用完成按钮,这样用户就无法将空笔记保存到数据库中,否则应该启用该按钮。
下面是我的代码,我的尝试失败了;我该如何解决这个问题?
@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
}
}
- 使您的视图控制器符合
UITextViewDelegate
协议
- 在 Interface Builder 中,将文本视图上的
delegate
连接到视图控制器。
- 将以下函数添加到您的视图控制器:
func textViewDidChange(textView: UITextView) {
if textView == self.textView {
self.doneButton.enabled = !textView.text.isEmpty
}
}
在 textViewDidChange
方法中试试这个:
yourBarButtonItem.isEnabled = !(yourTextField.text?.isEmpty ?? false)
我正在开发笔记应用程序,当文本视图为空时,应该禁用完成按钮,这样用户就无法将空笔记保存到数据库中,否则应该启用该按钮。
下面是我的代码,我的尝试失败了;我该如何解决这个问题?
@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
}
}
- 使您的视图控制器符合
UITextViewDelegate
协议 - 在 Interface Builder 中,将文本视图上的
delegate
连接到视图控制器。 - 将以下函数添加到您的视图控制器:
func textViewDidChange(textView: UITextView) {
if textView == self.textView {
self.doneButton.enabled = !textView.text.isEmpty
}
}
在 textViewDidChange
方法中试试这个:
yourBarButtonItem.isEnabled = !(yourTextField.text?.isEmpty ?? false)