将操作添加到通过swift扩展添加到文本字段的按钮

时间:2017-10-18 13:03:34

标签: swift uibutton uitextfield

我必须通过扩展名

在文本字段的右侧添加一个按钮

代码是---

import UIKit
@IBDesignable class TxtFieldCustom: UITextField {
 @IBInspectable var rightButtonImage: UIImage?
    {
    didSet
    {
        updateRightView()
    }
}
func updateRightView()
    {
        //for right Image
        if let image = rightButtonImage
        {
  let button = UIButton(type: .custom)
            button.setImage(image, for: .normal)
            button.imageEdgeInsets = UIEdgeInsetsMake(0, -16, 0, 0)
            button.frame = CGRect(x: 0, y: 0, width: 29, height: 29)
rightView = button
            rightViewMode = .always

        } else
        {
            rightViewMode = UITextFieldViewMode.never
            rightView = nil
        }
    }

按钮显示截图,但我很困惑如何设置该按钮的操作。我无法在扩展文件中设置它,因为我对不同的文本字段有不同的操作...

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以为按钮设置目标,并且在调用该操作时,您应该发布如下通知:

NotificationCenter.default.post(name: NSNotification.Name.init("buttonPressed"), object: nil)

然后在ViewController中添加观察者并实现不同的操作。 使用多个UITextField,您可以使用Notification传递userData。