swift - 向按钮添加操作,该按钮通过快速扩展添加到文本字段

标签 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

最佳答案

您可以为按钮设置一个目标,当该操作被调用时,您应该像这样发布一个通知:

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

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

关于swift - 向按钮添加操作,该按钮通过快速扩展添加到文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46810860/

相关文章:

ios - 我如何从核心 iOS 代码中引用我的 WatchKit 扩展中的 Swift 类?

objective-c - 在 NSObject 中构建后,UIButton 不会单击

ios - 如何将自定义类设置为以编程方式创建的 UIButton?

ios - Swift 3 扩展返回 "has no member"错误

ios - 在选项卡栏中实现 iOS 角标(Badge)通知的最佳方式

ios - 在 iOS 中我可以使用什么来代替 NSBitmapImageRep? (水波纹示例)

ios - 从不同的 View 更改 UITabBarItem 的标签

objective-c - 在编辑时更改 returnButton 会卡住键盘 1 次

ios - 在 swift3 中看到 UILocalNotification 后如何取消或删除?

ios - 如何将 UIButton 添加到地标? ios objective-c