下面的代码:
struct LoginViewModel {
var userName :String
var password :String
func userNameChanged(textField :UITextField) {
}
}
在视图控制器中,我想附加editingChanged选择器以触发userNameChanged事件:
class LoginViewController : UIViewController {
var loginVM :LoginViewModel!
override func viewDidLoad() {
super.viewDidLoad()
loginVM = LoginViewModel(userName: "", password: "")
let userNameTextField = UITextField(frame: CGRect(x: 20, y: 100, width: 100, height: 44))
userNameTextField.backgroundColor = UIColor.red
userNameTextField.addTarget(loginVM, action: #selector("loginVM.userNameChanged"), for: .editingChanged) // THIS IS NOT WORKING
上面的行给我带来了问题。
更新:
1条答案
按热度按时间x4shl7ld1#
选择器可以是带有Objective C风格选择器的字符串,也可以是Swift方法引用。您需要使用以下两种选择之一:
雨燕款式:
目标C样式:
只要有可能,Swift风格就更好,因为它清晰明了,而且编译器强制正确。