2つのテキストフィールドが空の場合、バーボタンアイテムを無効にしたいとします。 2つのテキストフィールドはtextFieldとtextFieldNbrSpansです。ちょうど1つのTextFieldにiOSで2つのテキストフィールドが空であるときにUIBarButtonを無効にする方法 - Swift 3
が、私は次のコードを使用し、それがうまく働いた:
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let oldText: NSString = textField.text! as NSString
let newText: NSString = oldText.replacingCharacters(in: range, with: string) as NSString
let oldTextSpan: NSString = textFieldNbrSpans.text! as NSString
let newTextSpan: NSString = oldTextSpan.replacingCharacters(in: range, with: string) as NSString
if (newText.length > 0 && newTextSpan.length > 0) {
doneBarButton.isEnabled = (newText.length > 0 && newTextSpan.length > 0)
let tintColor = UIColor(red: 48/255.0, green: 116/255.0, blue: 154/255.0, alpha: 1.0)
let attrs = [NSForegroundColorAttributeName: tintColor, NSFontAttributeName : UIFont(name: "Cochin-Italic", size: 16)!]
doneBarButton.setTitleTextAttributes(attrs, for: .normal)
} else {
let tintColor = UIColor(red: 48/255.0, green: 116/255.0, blue: 154/255.0, alpha: 0.2)
let attrs = [NSForegroundColorAttributeName: tintColor, NSFontAttributeName : UIFont(name: "Cochin-Italic", size: 16)!]
doneBarButton.setTitleTextAttributes(attrs, for: .normal)
doneBarButton.isEnabled = false
}
は、次のとおりです。
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let oldText: NSString = textField.text! as NSString
let newText: NSString = oldText.replacingCharacters(in: range, with: string) as NSString
if (newText.length > 0) {
doneBarButton.isEnabled = (newText.length > 0)
let tintColor = UIColor(red: 48/255.0, green: 116/255.0, blue: 154/255.0, alpha: 1.0)
let attrs = [NSForegroundColorAttributeName: tintColor, NSFontAttributeName : UIFont(name: "Cochin-Italic", size: 16)!]
doneBarButton.setTitleTextAttributes(attrs, for: .normal)
} else {
let tintColor = UIColor(red: 48/255.0, green: 116/255.0, blue: 154/255.0, alpha: 0.2)
let attrs = [NSForegroundColorAttributeName: tintColor, NSFontAttributeName : UIFont(name: "Cochin-Italic", size: 16)!]
doneBarButton.setTitleTextAttributes(attrs, for: .normal)
doneBarButton.isEnabled = false
}
私は上記のコードに別のテキストフィールドを追加しようとしたとき、それはエラーを与えました2つのテキストフィールドtextfield
& textfieldNbrSpan
が空の場合、バーボタンを無効にする方法で上記のコードを改善する方法がありますか?
あなたが持っているエラーは何ですか –