iT邦幫忙

2023 iThome 鐵人賽

DAY 8
0

前文

我們需要新增一個方法來去限制 Textfield 輸入數字
所以有了這篇文~~/images/emoticon/emoticon31.gif
讓我們一起往下看吧!!

添加 UITextFieldDelegate 協議

在 ViewController 後多打一個 UITextFieldDelegate
意思是讓ViewController 可以用 UITextFieldDelegate 裡面的東西

然後將每個textField的代理設置為自己的ViewController

添加方法限制輸入

新增一個 textField(_:shouldChangeCharactersIn:replacementString:)

這是UITextFieldDelegate協定中定義的一個方法,用於監聽文字欄位中的文字改變。

參數 textField 是發生文字改變的UITextField物件本身。

參數 range 告訴你哪個範圍的文字將被替換。

參數 string 是將要替換這個範圍文字的新文字。

解說

一開始我們要知道這個string的長度

然後用for迴圈一一找出string的每個character

再來我們要判斷這個 character 是否在0 ~ 9之間

如果不在就把textfield的text設成 0

48 跟 57 是ASCII碼 分別是字元 "0" 和 "9"

並且返回false來阻止該字元被加入textfield。

如果介於 0 ~ 9 返回 true 讓字元加入到textfield

這樣就可以控制使用者輸入只能是數字0~9囉

那今天就介紹到這邊了 各位明天見/images/emoticon/emoticon29.gif


上一篇
Day07 用Swift當個畫家
下一篇
Day09 優化使用者輸入
系列文
Xiang教你入門Swift從零到有30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言