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
是一點問題都沒有。
我相信我錯過了一些基本的東西,所以任何輸入都有幫助。