我有一个基本的聊天应用程序,我需要它,这样当inputTextField.text==nil时,没有信息从textField发送。我尝试的解决方案是在inputTextField.text==nil时禁用按钮,但这被证明是无效的。下面是按钮的实例化和处理发送的函数。
我提供了一个构建的屏幕快照,显示了inputTextField.text==nil时的外观。
screenshot
我不想让聊天泡泡出现。
有什么建议吗?

lazy var sendButton: UIButton = {
    let button = UIButton(type: .system)
    button.setTitle("Send", for: UIControlState())
    let titleColor = UIColor(red: 0, green: 137/255, blue: 249/255, alpha: 1)
    button.setTitleColor(titleColor, for: UIControlState())
    button.titleLabel?.font = UIFont.boldSystemFont(ofSize: 16)
    button.addTarget(self, action: #selector(handleSend), for: .touchUpInside)
    return button
}()

func handleSend(){
    print(inputTextField)

    let delegate = UIApplication.shared.delegate as! AppDelegate
    let context = delegate.managedObjectContext

    if inputTextField.text == nil {
        sendButton.isEnabled = false
    }else{
        FriendsController.createMessageWithText(inputTextField.text!, friend: friend!, minutesAgo: 0, context: context, isSender: true)
    }

    do{

        try context.save()
        inputTextField.text = nil

    }catch let err {
        print(err)
    }

}

最佳答案

可以检查handleSend()函数中的文本字段是否为空。这将同时修剪输入字符串前后的额外空间

let inputString = inputTextField.text
if(inputString.trimmingCharacters
   (in:CharacterSet.whitespacesAndNewlines) ?? "").isEmpty {
     print("String is nil or empty")
}else {
    //do your code for sending the data
}

10-08 03:33