我有一个 enum
我在用作 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 的委托(delegate),以便它知道它是“顶部”还是“底部”
@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
}
每行 textField.text
在 MemeTextDelegate
使用 textField
时出现编译器错误:“使用未解析的标识符‘textField’”在方法内完全没有问题。
我确信我遗漏了一些基本的东西,所以任何输入都会有所帮助。
最佳答案
从您提供的代码来看,MemeTextDelegate 不拥有 textField 的实例。据推测,它只会来自委托(delegate)方法。然而,您在 init 方法中引用了它。
关于ios - 无法在 Swift 的 UITextFieldDelegate 类初始值设定项中使用 TextField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30114800/