ios - 无法在 Swift 的 UITextFieldDelegate 类初始值设定项中使用 TextField

标签 ios swift enums delegates textfield

我有一个 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.textMemeTextDelegate使用 textField 时出现编译器错误:“使用未解析的标识符‘textField’”在方法内完全没有问题。

我确信我遗漏了一些基本的东西,所以任何输入都会有所帮助。

最佳答案

从您提供的代码来看,MemeTextDelegate 不拥有 textField 的实例。据推测,它只会来自委托(delegate)方法。然而,您在 init 方法中引用了它。

关于ios - 无法在 Swift 的 UITextFieldDelegate 类初始值设定项中使用 TextField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30114800/

相关文章:

ios - 在 UITableViewController textfield.becomeFirstResponder() 中不滚动 tableview

ios - 图像不直接进入数组

ios - SWIFT - 创建/更改长度等于 1 的 NSIndexPath

swift - 无法更改 SCNCone 的颜色 - Scenekit

c++ - 如何编写模板以基于整数/枚举转换为模板化类型

sql-server - 在 sql server 中应该选择什么数据类型来存储 C# 枚举?

ios - UITableView 动态大小

ios - 如何在 init 中将参数从 Objective C 传递到 Swift

java - 为什么 java 8 中的比较仍然使用 int 而不是 Enum?

ios - 无法使用 Xcode 9 创建 git 存储库