这是How to check if a text field is empty or not in swift
的扩展,而非重复给出的答案,
@IBAction func Button(sender: AnyObject) {
if textField1.text != "" {
// textfield 1
}
}
对我不起作用,即即使在文本字段中没有输入任何内容,也会触发if循环。 (我已经从原版修改了它,因为我只想在字段包含文本时触发代码)。
第二个答案
@IBAction func Button(sender: AnyObject) {
if !textField1.text.isEmpty{
}
}
更接近,但它接受像" "
这样的字符串不为空。我可以自己构建一些东西,但是有一个函数可以检查字符串是否包含空白以外的东西吗?
答案 0 :(得分:97)
您应该从空格字符修剪字符串并检查它是否为空:
if !textField1.text.trimmingCharacters(in: .whitespaces).isEmpty {
// string contains non-whitespace characters
}
您也可以使用CharacterSet.whitespacesAndNewlines
删除换行符。
答案 1 :(得分:19)
下面是我编写的扩展程序,它可以很好地工作,特别是对于那些来自.NET背景的扩展程序:
extension String {
func isEmptyOrWhitespace() -> Bool {
if(self.isEmpty) {
return true
}
return (self.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet()) == "")
}
}
答案 2 :(得分:4)
let whitespaceSet = CharacterSet.whitespaces
if !str.trimmingCharacters(in: whitespaceSet).isEmpty {
// string contains non-whitespace characters
}
答案 3 :(得分:3)
extension StringProtocol where Index == String.Index {
var isEmptyField: Bool {
return trimmingCharacters(in: .whitespaces) == ""
}
}
if yourTextField.text.isEmptyField {
// Field is empty
} else {
// Field is NOT empty
}
答案 4 :(得分:2)
快速解答4:
extension String {
func isEmptyOrWhitespace() -> Bool {
if(self.isEmpty) {
return true
}
return (self.trimmingCharacters(in: NSCharacterSet.whitespaces) == "")
}
}
答案 5 :(得分:1)
在Swift 3.0中回答
if stringValue.trimmingCharacters(in: CharacterSet.whitespaces).isEmpty
{}
答案 6 :(得分:1)
extension String {
func isEmptyOrWhitespace() -> Bool {
// Check empty string
if self.isEmpty {
return true
}
// Trim and check empty string
return (self.trimmingCharacters(in: .whitespaces) == "")
}
}
原始发布者的代码在可选的文本字段上检查text
。因此,他将需要一些代码来检查可选字符串。因此,我们也创建一个函数来处理该问题:
extension Optional where Wrapped == String {
func isEmptyOrWhitespace() -> Bool {
// Check nil
guard let this = self else { return true }
// Check empty string
if this.isEmpty {
return true
}
// Trim and check empty string
return (this.trimmingCharacters(in: .whitespaces) == "")
}
}
答案 7 :(得分:0)
回答 Swift 3。* ,考虑换行,标签
extension String {
var containsNonWhitespace: Bool {
return !self.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty
}
}
答案 8 :(得分:0)
迅速4.2
@IBAction func checkSendButton(_ sender: UITextField) {
if((sender.text?.count)! > 0 && !(sender.text!.trimmingCharacters(in: .whitespaces)).isEmpty){
self.sendButton.isEnabled = true
}
else{
self.sendButton.isEnabled = false
}
}
答案 9 :(得分:0)
在需要演示的情况下回答图片
// MY FUNCTIONS
private func checkMandatoryFields(){
//CHECK EMPTY OR SPACES ONLY FIELDS
if let type = typeOutle.text, let name = nameOutlet.text, let address = addressOutlet.text, type.trimmingCharacters(in: .whitespaces).isEmpty || name.trimmingCharacters(in: .whitespaces).isEmpty || address.trimmingCharacters(in: .whitespaces).isEmpty {
print("Mandatory fields are: ")
errorDisplay(error: "Mandatory fields are: Type, Name, Address.")
return
}
}