##完成系
##やり方
TextFieldにはrightViewというプロパティがあるのでそこにボタンをセットしてあげます。
ただ、rightViewに直接ボタンを配置すると大きさを指定しても拡大されてしまうので、あいだにUIViewを挟みます。
class ViewController: UIViewController {
@IBOutlet weak var textField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
let view = UIView(frame: CGRect(x: 0, y: 0, width: 30, height: 30))
//ボタンのY座標は(TextFieldの高さ-ボタンの高さ)/2
let button = UIButton(frame: CGRect(x: 5, y: 5, width: 20, height: 20))
button.contentEdgeInsets = .init(top: 0, left: 0, bottom: 3, right: 0)
button.setTitle("×", for: .normal)
button.backgroundColor = .lightGray
button.layer.cornerRadius = button.frame.width / 2
//ボタンに処理を追加
button.addTarget(self, action: #selector(tappedButton), for: .touchUpInside)
view.addSubview(button)
//デフォルトだと表示されていない
textField.rightViewMode = .always
textField.rightView = view
}
//タップされたときの処理
@objc func tappedButton() {
print("tapped")
}
}