我正在将UIButton设置为UITextField的rightView。此外,我正在设置将一个目标操作添加到UIButton中
myButton.addTarget(self, action: "buttonPressed:", forControlEvents: .TouchUpInside)我想知道如何从指定为UITextField的方法(其方法签名如下所示)访问buttonPressed:
func buttonPressed(sender: UIButton) {
}我试过了
sender.superview as! UITextField但我似乎得到了一个nil。
此外,我无法使用标签,因为它已经在使用的另一个目的。
编辑:
有关更多信息,myButton.addTarget()发生在UITableViewCell中,这就是为什么在视图控制器中没有outlet到UITextField的原因。
有人有什么想法吗?
发布于 2015-06-12 07:30:14
你的代码是正确的
我试过如下,这对我很有帮助
自定义textField:
var textFiled = UITextField(frame: CGRectMake(20.0, 50.0, 100.0, 33.0))
textFiled.borderStyle = UITextBorderStyle.RoundedRect
let purpleImageButton = UIButton(frame :CGRectMake(0, 0, 10, 30))
purpleImageButton.backgroundColor = UIColor.blackColor()
purpleImageButton.setTitle("T", forState: UIControlState.Normal)
purpleImageButton.addTarget(self, action: "buttonPressed:", forControlEvents: .TouchUpInside)
textFiled.rightViewMode = UITextFieldViewMode.Always
textFiled.rightView = purpleImageButton
self.view.addSubview(textFiled)函数buttonPressed:
func buttonPressed(sender: UIButton) {
let textF : UITextField = sender.superview as UITextField
textF.text = "Hello"
}在点击之前

单击textField按钮后:

希望你能找到问题。
这里是Xcode版本6.1。因此,我的例子将与SWIFT1.1相同。
https://stackoverflow.com/questions/30797419
复制相似问题