ToolbarItem(placement: .topBarTrailing) {
Button("Done") {
// TODO: save function
onSave(name, UIColor(selectedColor))
dismiss()
}
.disabled(!isFormValid)
}
List의 name은 optional 속성이 아니고, 공백인 상태로 저장을 시도하면 오류가 발생하게 된다.
private var isFormValid: Bool {
!name.isEmpty
}
이를 위해 저장을 시도하게 되는 Done 버튼은 name에 해당하는 textField가 비어있다면 비활성화되도록 구성했는데
공백에는 무력화 되는 문제가 생긴다.
extension String {
var isEmptyOrWhitespace: Bool {
return trimmingCharacters(in: .whitespacesAndNewlines).isEmpty
}
}
isEmpty를 대신할 새로운 isEmptyOrWhitespace 메서드를 하나 만들어 주고, 이를 대신해서 사용하도록 변경했다.
공백도 예외로 판단하는 걸 확인할 수 있다.
'프로젝트 > ReminderApp clone' 카테고리의 다른 글
08. 새 Entity 추가, 의존성 추가 (0) | 2024.04.17 |
---|---|
06. ListView 구성하기, Preview Data 구성하기 (0) | 2024.04.17 |
04. 저장 기능 구현하기 (0) | 2024.04.11 |
03. AddNewListView 수정 및 호출 (0) | 2024.04.11 |
02. 새 List 추가 인터페이스 구현하기 (0) | 2024.04.11 |