Включите кнопку, если в текстовом поле есть ввод SwiftUI

#swiftui

Вопрос:

Впервые задаю вопрос. Извините, если я груб.

Я хочу создать механизм, который предотвращает нажатие кнопки, когда в текстовом поле нет ввода. Напротив, я хочу включить кнопку, если есть ввод.

Я написал это так, но я получаю сообщение об ошибке «Не удается найти «$ task» в области видимости».

Ты знаешь, почему?

 import SwiftUI import CoreData   struct TFenableView: View {  @ObservedObject var task: Task    @Environment(.managedObjectContext) var viewContext  @Environment(.presentationMode) var presentation    var taskNameIsValid: Bool {  return !task.name.isEmpty  }    var body: some View {  Form {  TextField("Edit TaskName", text: $task.name)  .textFieldStyle(RoundedBorderTextFieldStyle())  .padding()    Button(action: {  Task.save(in: self.viewContext)  self.presentation.wrappedValue.dismiss()  }) {  Text("Update!")  }.padding()  .disabled(!taskNameIsValid)  }  .navigationBarTitle("Editing screen")  .navigationBarBackButtonHidden(!taskNameIsValid)  } }  struct TFenableVieew_Previews: PreviewProvider {  static var previews: some View {  TFenableView()  } }  

Текстовое поле фото

Комментарии:

1. Примечание Task — это уже имя структуры swift 5.5. Можете ли вы показать код для вашего Task class . Кроме того, у вас есть опечатка, TFenableVieew_Previews и вы TFenableView(task: Task()) в этом упускаете.

2. Работает для меня, когда я вносю изменения, чтобы заставить его компилироваться и работать. В случае ошибки компилятора попробуйте очистить ( command shift K ) и перестроить проект.