Alert의 UITextField 사용자 지정 + 입력한 문자 수에 따라 TextField에 "/"추가
16327 단어 Swift
이번 내용

코드와 간략한 설명
Alert 내의 UITextField 사용자 정의
.placeholder는 자리 표시자를 설정합니다. .layer.borderWidth는 TextField의 border 두께를 설정합니다. (값이 클수록 굵어집니다) .layer.borderColor는 TextField의 border 색상을 설정합니다. .borderStyle는 border의 모양을 설정합니다. 종류는 .roundedRect .bezel .line .none입니다. .clearButtonMode는 TextField의 우단에 표시되는 입력된 문자를 삭제하는 버튼을 표시하거나 설정한다. 종류는 .always .never .unlessEditing .whileEditing입니다. Alert
var productNameTextField:UITextField?
var janCodeTextField:UITextField?
var deadlineDayTextField:UITextField?
var tagTextField:UITextField?
let alert = UIAlertController(title: "データを追加", message:"データを追加する場合は、値を入力して下さい", preferredStyle: .alert)
alert.addTextField { (alertProductNameTextField:UITextField) in
alertProductNameTextField.placeholder = "商品名"
alertProductNameTextField.layer.borderWidth = 1.0
alertProductNameTextField.layer.borderColor = UIColor(red: 1.0, green: 0.40, blue: 0.51, alpha: 1.0).cgColor
alertProductNameTextField.borderStyle = .roundedRect
alertProductNameTextField.clearButtonMode = .always
productNameTextField = alertProductNameTextField
}
alert.addTextField { (alertJANCodeTextField:UITextField) in
alertJANCodeTextField.placeholder = "JANコード"
alertJANCodeTextField.layer.borderWidth = 1.0
alertJANCodeTextField.layer.borderColor = UIColor(red: 1.0, green: 0.40, blue: 0.51, alpha: 1.0).cgColor
alertJANCodeTextField.borderStyle = .roundedRect
alertJANCodeTextField.clearButtonMode = .always
janCodeTextField = alertJANCodeTextField
}
alert.addTextField { (alertDeadlineDayTextField:UITextField) in
alertDeadlineDayTextField.placeholder = "期限 例:2021/01/01"
alertDeadlineDayTextField.layer.borderWidth = 1.0
alertDeadlineDayTextField.layer.borderColor = UIColor(red: 1.0, green: 0.40, blue: 0.51, alpha: 1.0).cgColor
alertDeadlineDayTextField.borderStyle = .roundedRect
alertDeadlineDayTextField.clearButtonMode = .always
alertDeadlineDayTextField.addTarget(self, action: #selector(self.addSlash), for: .allEditingEvents)
deadlineDayTextField = alertDeadlineDayTextField
}
alert.addTextField { (alertTagTextField:UITextField) in
alertTagTextField.placeholder = "商品の分類 例:食品"
alertTagTextField.layer.borderWidth = 1.0
alertTagTextField.layer.borderColor = UIColor(red: 1.0, green: 0.40, blue: 0.51, alpha: 1.0).cgColor
alertTagTextField.borderStyle = .roundedRect
alertTagTextField.clearButtonMode = .always
tagTextField = alertTagTextField
}
alert.addAction(UIAlertAction(title: "キャンセル", style: .default, handler: nil))
alert.addAction(UIAlertAction(title: "追加", style: .default, handler: { _ in
//追加が押された時の処理
}))
입력한 문자 수에 따라 TextField에 "/" 추가
.addTarget(self, action: #selector(self.addSlash), for: .allEditingEvents) 에서 TextField 에 값이 입력될 때마다 text.count 가 4 문자째와 7 문자째일 때만 "/"를 추가합니다. Alert
alert.addTextField { (alertDeadlineDayTextField:UITextField) in
alertDeadlineDayTextField.placeholder = "期限 例:2021/01/01"
alertDeadlineDayTextField.layer.borderWidth = 1.0
alertDeadlineDayTextField.layer.borderColor = UIColor(red: 1.0, green: 0.40, blue: 0.51, alpha: 1.0).cgColor
alertDeadlineDayTextField.borderStyle = .roundedRect
alertDeadlineDayTextField.clearButtonMode = .always
alertDeadlineDayTextField.addTarget(self, action: #selector(self.addSlash), for: .allEditingEvents)
deadlineDayTextField = alertDeadlineDayTextField
}
2021를 입력하면 "/"를 추가합니다. ( 2021/입니다) 2021/08를 입력할 때 "/"를 추가합니다. ( 2021/08/입니다) #selector(self.addSlash)
@objc func addSlash(sender:UITextField){
if sender.text?.count == 4{
sender.text = sender.text! + "/"
}else if sender.text?.count == 7{
sender.text = sender.text! + "/"
}
}
}
끝
지적, 질문 등 있으면, 코멘트까지 부탁드립니다.
Reference
이 문제에 관하여(Alert의 UITextField 사용자 지정 + 입력한 문자 수에 따라 TextField에 "/"추가), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/HiroUrata/items/55334a96a5135cf8e893
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Alert의 UITextField 사용자 지정 + 입력한 문자 수에 따라 TextField에 "/"추가), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/HiroUrata/items/55334a96a5135cf8e893텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)