【发布时间】:2017-11-01 20:49:05
【问题描述】:
如果我在 ViewController 中实例化委托,一切正常,委托被正确调用:
class ViewController: UIViewController {
@IBOutlet weak var topText: UITextField
let topDelegate = UpperTextDelegate()
override func viewDidLoad() {
topText.delegate = topDelegate
}
// GOOD, DELEGATE METHODS ARE GETTING CALLED AS EXPECTED
如果我在 viewDidLoad 方法内实例化委托,事情就会中断,委托方法不会被调用。
class ViewController: UIViewController {
@IBOutlet weak var topText: UITextField
override func viewDidLoad() {
topText.delegate = UpperTextDelegate()
}
// BAD, DELEGATE METHODS ARE NOT GETTING CALLED :-(
请问这是怎么回事?
---------
这是代表:
import UIKit
class UpperTextDelegate: NSObject, UITextFieldDelegate {
func textFieldDidBeginEditing(_ textField: UITextField) {
textField.text = ""
}
}
【问题讨论】:
-
UpperTextDelegate()的放代码
-
您确定在设置委托后调用了委托方法吗?如果在 ViewController 的
viewDidLoad之前调用,则不会调用UpperTextDelegate的委托方法。