我希望在不同的情况下禁用或启用一个按钮:
如果用户进入我的共享视图控制器,则按钮将被禁用:
func handleShareAndAbortButton() {
shareButton.isEnabled = false
abortButton.isEnabled = false
let attributedShareButtonText = NSAttributedString(string: shareButton.currentTitle!, attributes: [NSAttributedString.Key.foregroundColor: UIColor(red: 0, green: 0, blue: 0, alpha: 0.2) ])
let attributedabortButtonText = NSAttributedString(string: abortButton.currentTitle!, attributes: [NSAttributedString.Key.foregroundColor: UIColor(red: 0, green: 0, blue: 0, alpha: 0.2) ])
shareButton.setAttributedTitle(attributedShareButtonText, for: .normal)
abortButton.setAttributedTitle(attributedabortButtonText, for: .normal)
}
handleShareAndAbortButton
将在viewDidLoad
中调用。
如果有更改(图片或文本),我想启用按钮:
func imageDidChange() {
selectedText = postTextView.text!
let isText = selectedText
let isImage = selectedImage != nil
if isImage || isText != "Schreibe etwas..." && isText != nil {
shareButton.isEnabled = true
abortButton.isEnabled = true
let attributedShareButtonText = NSAttributedString(string: shareButton.currentTitle!, attributes: [NSAttributedString.Key.foregroundColor: UIColor(red: 255, green: 255, blue: 255, alpha: 1.0) ])
let attributedabortButtonText = NSAttributedString(string: abortButton.currentTitle!, attributes: [NSAttributedString.Key.foregroundColor: UIColor(red: 0, green: 0, blue: 0, alpha: 1.0) ])
shareButton.setAttributedTitle(attributedShareButtonText, for: .normal)
abortButton.setAttributedTitle(attributedabortButtonText, for: .normal)
}
}
我在 viewWillAppear
中调用了 imageDidChange
。
在此,当开始编辑时,我删除了占位符:
extension ShareViewController: UITextViewDelegate {
func textViewDidBeginEditing(_ textView: UITextView) {
if postTextView.textColor == UIColor.lightGray {
postTextView.text = nil
postTextView.textColor = UIColor.black
}
}
func textViewDidEndEditing(_ textView: UITextView) {
if postTextView.text.isEmpty {
postTextView.text = "Schreibe etwas..."
postTextView.textColor = UIColor.lightGray
}
}
}
当用户输入一些文本时,占位符“Schreibe etwas…”将会消失,文本也将变为非零。但它没有起作用。
更新
我找到了问题所在。当我删除isText!=“Schreibe etwas…”时,它就可以工作了。但我需要这个。我如何与一个字符串进行比较?如果我没有这段代码,用户就可以始终上传带有占位符文本的内容。
谢谢你提前的帮助!
viewWillAppear
中。 - jo1995textViewDidEndEditing
中也调用ìmageDidChange
。给出一个答案,我会接受它! - jo1995