UITextfield键盘外观的扩展

时间:2019-05-04 13:30:34

标签: swift keyboard uitextfield

在我的应用中,我将添加不同的主题,但是现在,我想编写一个可以处理扩展中键盘外观的扩展。 第一步,我只想控制它的外观,所以我将其设置为.dark,但它不起作用。您能告诉我这个简单扩展中的问题在哪里吗? 我只希望它可以自动更改键盘外观而无需执行其他任何操作

extension UITextView {


  var keyboardApperance: UIKeyboardAppearance? {
    get {
        return self.keyboardAppearance
    }
    set {
         self.keyboardAppearance = .dark
    }
  }
}

3 个答案:

答案 0 :(得分:0)

尝试使用此类功能

extension UITextView {
    func setKeyboardToDark() {
        self.keyboardAppearance = .dark
    }

    func setKeyboardToLight() {
        self.keyboardAppearance = .light
    }
}

答案 1 :(得分:0)

仅创建扩展名不会更改您的UITextView属性。

您可以创建自己的自定义UITextView并使用它代替UITextView。

如果使用情节提要或xib,请不要忘记设置课程。

@IBDesignable
public class CustomDarkTextView: UITextView {

    public override init(frame: CGRect, textContainer: NSTextContainer?) {
        super.init(frame: frame, textContainer: textContainer)
        setup()
    }

    public convenience init(frame: CGRect) {
        self.init(frame: frame, textContainer: nil)
        setup()
    }

    public convenience init() {
        self.init(frame: CGRect.zero, textContainer: nil)
        setup()
    }

    public required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        setup()
    }

    func setup() {
        self.keyboardAppearance = UIKeyboardAppearance.Dark
    }
}

答案 2 :(得分:0)

  extension UITextView {
            func setDarkKeyboard() {
            self.keyboardAppearance = UIKeyboardAppearance.dark
           }

            func setLightKeyboard() {
            self.keyboardAppearance = UIKeyboardAppearance.light
          }
     }