回答編集履歴

1

改良案の提示

2020/10/08 13:06

投稿

TsukubaDepot
TsukubaDepot

スコア5086

test CHANGED
@@ -103,3 +103,63 @@
103
103
  }
104
104
 
105
105
  ```
106
+
107
+
108
+
109
+ ###2020年10月9日追記
110
+
111
+
112
+
113
+ あまり良い案ではありませんが、こういう方法が一つかもしれません。
114
+
115
+ 充分にテストしたわけではないので、まだ抜けがあるかもしれません。
116
+
117
+
118
+
119
+ ```Swift
120
+
121
+ class CustomUITextField: UITextField {
122
+
123
+ weak var deletionDelegate: CustomUITextFieldDelegate?
124
+
125
+
126
+
127
+ override func deleteBackward() {
128
+
129
+ // 実際に削除する直前の文字数を記録しておく
130
+
131
+ let beforeWordsCount = self.text?.count ?? 0
132
+
133
+ super.deleteBackward()
134
+
135
+ deletionDelegate?.didDeleteBackward(self, previousCount: beforeWordsCount)
136
+
137
+ }
138
+
139
+ }
140
+
141
+ ```
142
+
143
+
144
+
145
+ ```Swift
146
+
147
+ extension ViewController: CustomUITextFieldDelegate {
148
+
149
+ func didDeleteBackward(_ textField: CustomUITextField, previousCount prev: Int) {
150
+
151
+ if prev == 0 {
152
+
153
+ print("文字がない状態で delete が押されました")
154
+
155
+ } else {
156
+
157
+ print("文字を削除しました。")
158
+
159
+ }
160
+
161
+ }
162
+
163
+ }
164
+
165
+ ```