我有一个基本的聊天应用程序,我需要它,这样当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
}