Swift 3-如何覆盖子类中的方法

May*_*ain 0 overriding subclass ios swift swift3

在Swift 3中,我想覆盖其子类中的caretRectForPosition方法UITextFieldCustomTextField

这是我的代码,在Swift 2.3之前工作正常

import UIKit

class CustomTextField: UITextField {
    override func caretRectForPosition(position: UITextPosition) -> CGRect {
        return CGRect.zero
    }
}
Run Code Online (Sandbox Code Playgroud)

但是在Swift 3中它显示了编译时错误Method不会覆盖其超类中的任何方法.

任何人都可以帮助我解决这个问题.

我正在使用此代码隐藏文本字段的光标.

提前致谢.

Nir*_*v D 6

在Swift 3 caretRectForPosition(position:)中改为caretRect(for:).

override func caretRect(for position: UITextPosition) -> CGRect {
    return CGRect.zero
}
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请查看Apple文档UITextInput.