UITextfield 键盘外观的扩展
Posted
技术标签:
【中文标题】UITextfield 键盘外观的扩展【英文标题】:extension for UITextfield keyboard appearance 【发布时间】:2019-09-22 18:43:25 【问题描述】:在我的应用程序中,我将添加不同的主题,但现在,我想编写一个可以处理扩展程序中的键盘外观的扩展程序。
第一步,我只想控制它的外观,所以我设置它应该是.dark
,但它不起作用。你能告诉我这个简单扩展的问题在哪里吗?
我只是希望它自动更改键盘外观而不做任何其他事情
extension UITextView
var keyboardApperance: UIKeyboardAppearance?
get
return self.keyboardAppearance
set
self.keyboardAppearance = .dark
【问题讨论】:
你是怎么用这个的? 我只是想让它自动改变键盘外观而不做任何其他事情 【参考方案1】:仅创建扩展不会更改您的 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】:尝试使用这样的功能
extension UITextView
func setKeyboardToDark()
self.keyboardAppearance = .dark
func setKeyboardToLight()
self.keyboardAppearance = .light
【讨论】:
感谢您的帮助,但不幸的是它不起作用 @JOnney 你真的打电话给someTextfield.setKeyboardToDark()
吗?
如果someTextField
的类型是UITextView
,那么您的问题的答案^^^ 是肯定的【参考方案3】:
extension UITextView
func setDarkKeyboard()
self.keyboardAppearance = UIKeyboardAppearance.dark
func setLightKeyboard()
self.keyboardAppearance = UIKeyboardAppearance.light
【讨论】:
以上是关于UITextfield 键盘外观的扩展的主要内容,如果未能解决你的问题,请参考以下文章