Мой быстрый код прямо сейчас делегат текстового поля, чтобы изменить то, что отображается в метке. Проблема в том, что метка изменяется только тогда, когда пользователь вводит число, а затем удаляет его. Как вы можете видеть в GIF ниже. Все, что я хочу сделать, - это когда пользователь вводит 1, потому что Ким Кардашьян появляется на этикетке. Прямо сейчас он делает это, но мне нужно 1, затем удалить его из текстового поля, и только тогда на ярлыке появится Ким Кардашьян.
![enter image description here](https://i.stack.imgur.com/OgPIr.gif)
import UIKit
import CoreData
class ViewController: UIViewController,UITextFieldDelegate {
@IBOutlet var labelName : UILabel!
@IBOutlet var enterT : UITextField!
lazy var context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
override func viewDidLoad() {
super.viewDidLoad()
openDatabse()
enterT.delegate = self
}
func joke(at index : Int) {
let fetchRequest = NSFetchRequest<Users>(entityName: "Users")
fetchRequest.predicate = NSPredicate(format: "idx == %d", Int32(index))
do {
if let user = try context.fetch(fetchRequest).first {
labelName.text = user.username
}
} catch {
print("Could not fetch \(error) ")
}
}
func openDatabse()
{
let names = ["kim kardashian", "jessica biel", "Hailey Rienhart"]
for i in 0..<names.count {
let newUser = Users(context: context)
newUser.username = names[i]
newUser.idx = Int32(i + 1)
}
print("Storing Data..")
do {
try context.save()
} catch {
print("Storing data Failed", error)
}
}
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
// return NO to not change text
print("While entering the characters this method gets called")
guard let index = Int(textField.text!) else {
// display an alert about invalid text
return true
}
joke(at: index )
return true
}}