只有大写的 UITextField Swift

Posted

技术标签:

【中文标题】只有大写的 UITextField Swift【英文标题】:Only uppercased UITextField Swift 【发布时间】:2016-10-05 13:18:54 【问题描述】:

我想强制 UITextField 输入大写文本。这就是我所做的:

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool 
    let nsString = textField.text as NSString?
    let newString = nsString?.replacingCharacters(in: range, with: string)
    textField.text = newString?.uppercased()
    return false

有什么方法可以在不使用replacingCharacterInRangeNSString 的情况下强制大写UITextField?

【问题讨论】:

【参考方案1】:

我找到了!

我刚刚在我的 TextField 中添加了一个 UIControlEvents.editingChanged 类型的目标 在选择器中我做了:textField.text = textField.text?.uppercased() 代码如下:

myTextField.addTarget(self, action: #selector(myTextFieldTextChanged), for: UIControlEvents.editingChanged)

func myTextFieldTextChanged (textField: UITextField) 
    textField.text =  textField.text?.uppercased()

这正是我想要的。谢谢大家!

【讨论】:

【参考方案2】:

很简单,就这么做

self.yourTexField.autocapitalizationType = UITextAutocapitalizationType.AllCharacters;

【讨论】:

这是键盘用的,我想把文字大写。

以上是关于只有大写的 UITextField Swift的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI 从 UITextField 中关闭键盘

带有 mkmapview 和 uitextfield 委托函数的 Swiftui

如何在 SwiftUI 中更改 UIViewRepresentable 内的 UITextField 大小

UITextField 未更新以更改 ObservableObject (SwiftUI)

SwiftUI - UITextField 中的状态更改导致 frameWidth 不受控制地增长并忽略边界/框架

如何在 UIAlertView 的 UITextField 上设置自动大写?