来自 rightView 的 UITextField 参考
Posted
技术标签:
【中文标题】来自 rightView 的 UITextField 参考【英文标题】:UITextField reference from rightView 【发布时间】:2015-06-12 07:17:45 【问题描述】:我将UIButton
设置为UITextField
的rightView
。此外,我正在设置通过
UIButton
添加目标操作
myButton.addTarget(self, action: "buttonPressed:", forControlEvents: .TouchUpInside)
我想知道如何从指定为buttonPressed
的方法访问UITextField
,其方法签名如下所示:
func buttonPressed(sender: UIButton)
我试过了
sender.superview as! UITextField
但我似乎收到了nil
。
另外,我无法使用标签,因为它已经用于其他目的。
编辑:
有关更多信息,myButton.addTarget()
发生在 UITableViewCell
内,这就是为什么我在视图控制器中没有 outlet
到 UITextField
的原因。
有人有什么想法吗?
【问题讨论】:
为什么不能设置标签? 如 OP 中所述,我将标签用于其他目的。 【参考方案1】:你的代码是正确的
我尝试如下,它对我有用
自定义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 版。因此,我的示例将按照 Swift 1.1 进行。
【讨论】:
我刚试过这个,它似乎仍然返回 nil。 @coldbuffet 改变了答案以上是关于来自 rightView 的 UITextField 参考的主要内容,如果未能解决你的问题,请参考以下文章
禁用 UITextField 时如何在 leftView/rightView 中启用点击?
iOS7 上的 UITextfield leftView/rightView 填充
将 rightview UIImageView 输入到 UITextField
重新加载行包含带有 rightView 的 UITextField 会导致无限循环和内存溢出
如何在 Xamarin IOS 自定义渲染器中单击 UITextField Rightview 打开 UIPickerView