В XCode 6.3.2
имам UITextField:
@IBOutlet weak var uiswitchControlledTextField: UITextField!
Сега използвам UISwitch (с име mySwitch
), за да контролирам неговото активирано или деактивирано състояние по следния начин:
@IBOutlet weak var mySwitch: UISwitch!
mySwitch.addTarget(self, action: Selector("stateChanged:"), forControlEvents: UIControlEvents.ValueChanged)
//callback below:
func stateChanged(switchState: UISwitch) {
uiswitchControlledTextField.enabled = switchState.on
}
Горното работи добре, но се опитвам да опитам дали е възможно да създам UITextFieldDelegate, за да контролирам горния UITextField по същия начин. Досега имам следното чрез прилагане на textFieldShouldBeginEditing
, в което искам да върна false, за да деактивирам UITextField, но не знам как да позволя на UISwitch
динамично да връща true или false< /strong> от textFieldShouldBeginEditing
import Foundation
import UIKit
class SwitchControlledTextFieldDelegate: NSObject, UITextFieldDelegate {
func textFieldShouldBeginEditing(textField: UITextField) -> Bool {
return false; //do not show keyboard or cursor
}
}
Във ViewController се опитвам да задам
self.uiswitchControlledTextField.delegate = SwitchControlledTextFieldDelegate()
но не работи както исках. Всяка помощ ще бъде оценена.