2
我有一个enum
我在作为UITextFieldDelegate
不能在UITextFieldDelegate类初始化使用文本字段在斯威夫特
枚举类使用:
enum Position {
//Enum for Position variable in MemeTextDelegate
case Top, Bottom
init() { //set outside of enum to .Bottom if needed
self = .Top
}
UITextFieldDelegate类:
class MemeTextDelegate: NSObject, UITextFieldDelegate {
var position = Position()
var userEnteredText = false //Default value
override init() {
switch (position) {
case (.Top):
textField.text = "TOP"
default:
textField.text = "BOTTOM"
}
}
//Methods removed for this example...
}
在ViewController
中,我设置了每个TextField的代理人,因此它知道它是'Top'或'Bottom'
@IBOutlet weak var topTextField: UITextField!
@IBOutlet weak var bottomTextField: UITextField!
let topTextFieldDelegate = MemeTextDelegate()
let bottomTextFieldDelegate = MemeTextDelegate()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
//Set Delegates
self.topTextField.delegate = self.topTextFieldDelegate
self.bottomTextField.delegate = self.bottomTextFieldDelegate
//Set individual fields delegate properties for TOP and BOTTOM
self.topTextFieldDelegate.position = .Top
self.bottomTextFieldDelegate.position = .Bottom
}
在MemeTextDelegate
与textField.text
每一行得到一个编译器错误,上面写着:“未解决的标识符‘文本框’的使用”,同时使用方法中textField
是一点问题都没有。
我相信我错过了一些基本的东西,所以任何输入都有帮助。