首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类函数中的UITextViewDelegate

类函数中的UITextViewDelegate
EN

Stack Overflow用户
提问于 2017-08-09 07:36:24
回答 1查看 54关注 0票数 1

我使用的是斯威夫特3,我有一个课程如下:

代码语言:javascript
复制
class Assistor : NSObject , UITextViewDelegate {


private override init() {

}

class func RegisterTextView(uiview:UIView) {

    if let RegisteredView = uiview as? UITextView {
        RegisteredView.delegate = self as! UITextViewDelegate
    }
}


func textViewDidBeginEditing(_ textView: UITextView) {
    print("Begin")
}

func textViewDidEndEditing(_ textView: UITextView) {
    print("End")
}
}

在普通的uiview控制器中,我想在viewDidLoad中调用像这样的助手函数:

代码语言:javascript
复制
class InqueryDetailsViewController: UIViewController {
    @IBOutlet weak var AnswerTextView:UITextView!
override func viewDidLoad() {
    super.viewDidLoad()

Assistor.RegisterTextView(uiview: AnswerTextView)
}
}

显然,我希望从助手而不是从trigger控制器触发textViewDidBeginEditing。怎么做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-09 07:53:55

首先,必须将您的Assistor声明为对象,如果只需要一个对象,则需要将init更改为public,并将registerTextView更改为实例方法。

尝试使用这个

代码语言:javascript
复制
class Assistor : NSObject , UITextViewDelegate {

    //Singleton
     static let sharedInstance: Assistor = Assistor()

    override init() {
        super.init()
    }

    func registerTextView(uiview:UIView) {
        if let RegisteredView = uiview as? UITextView {
            RegisteredView.delegate = self as! UITextViewDelegate
        }
    }


    func textViewDidBeginEditing(_ textView: UITextView) {
        print("Begin")
    }

    func textViewDidEndEditing(_ textView: UITextView) {
        print("End")
    }
}

使用it

代码语言:javascript
复制
class ViewController: UIViewController {

    @IBOutlet weak var textView: UITextView!

    var assistor : Assistor = Assistor()

    override func viewDidLoad() {
        super.viewDidLoad()

        self.assistor.registerTextView(uiview: self.textView)
        //using as singleton
        //Assistor.sharedInstance.registerTextView(uiview: self.textView)
    }
}

希望这能有所帮助

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45584358

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档