【问题标题】:How to check if a string is a character in Swift如何检查一个字符串是否是 Swift 中的一个字符
【发布时间】:2020-06-28 07:14:50
【问题描述】:

我有一个 textField (symbolTextField),我将在 textField 中输入字符。 textField 中只接受字符。所以我需要检查输入在 textField 中是否有单个字符。 我有一个按钮,我正在更新按钮状态,当 symbolTextField 只有一个字符而不是几个字符(字符串)时,按钮将被启用。 我正在考虑在“saveButton.isEnabled =”中添加一个条件来检查symbolTextField.text 是否是一个字符,我该怎么做?

func updateSaveButtonState() {
   let symbolText = symbolTextField.text ?? ""
   let nameText = nameTextField.text ?? ""
   let descriptionText = descriptionTextField.text ?? ""
   let usageText = usageTextField.text ?? ""
   saveButton.isEnabled = !symbolText.isEmpty && !nameText.isEmpty && !descriptionText.isEmpty && !usageText.isEmpty
}

【问题讨论】:

  • 字符是什么意思?一个元素或来自特定字符集
  • 只要检查字符串的长度是否为 1,symbolText.count == 1 如果您的意思是该字段应该只包含一个字符。
  • 最好继承 UItextField 并将其长度限制为一个字符stackoverflow.com/a/37366850/2303865
  • 字符,如“a”、“????”,都是字符。

标签: swift xcode


【解决方案1】:

假设是一个字符意味着一个字符只是count字符

顺便说一句,UITextField 有一个 hasText 属性,这大大减少了代码。

func updateSaveButtonState() {
   saveButton.isEnabled = nameTextField.hasText && 
                          descriptionText.hasText &&
                          usageTextField.hasText && 
                          symbolTextField.text!.count == 1
}

【讨论】:

  • “UITextField 有一个 hasText 属性”这不是真的。 UITextField 符合 UITextInput 继承自 UIKeyInput 包含该属性
  • 利奥,这是吹毛求疵。实际上UITextField这个属性。
  • 如果有人在 UITextField 文档中查找它,他们将找不到它
  • 哇,.count==1,解决了我的困惑,我什至花了几个小时。我专注于 Character() 来检查字符串实例的类型,但没有结果。我尝试使用扩展字符串来提供计算属性,但也失败了。但是.count = 1,这是一个很好的验证条件,可以确保输入是一个字符。
猜你喜欢
  • 2014-07-24
  • 2013-05-12
  • 2010-10-13
  • 2022-03-31
  • 1970-01-01
  • 2019-05-11
相关资源
最近更新 更多