如何更好地限制UITextField的輸入長度

時間 2022-03-25 21:05:12

1樓:匿名使用者

要限制乙個uitextfield的輸入字數(參考鏈結),首先想到的應該是通過

uitextfielddelegate

的**方法來限制:

- (bool)textfield:(uitextfield *)textfield shouldchangecharactersinrange:(nsrange)range replacementstring:

(nsstring *)string; // return no to not change text

比如要設定字數限制為20:

- (bool)textfield:(uitextfield *)textfield shouldchangecharactersinrange:(nsrange)range replacementstring:

(nsstring *)string

return yes;

}但是這樣的限制簡單粗暴,可能會影響使用者正常邏輯下的輸入,比如輸入了20個字元後,要退格回刪字元。

這時候我們可能會考慮「detect backspace in uitextfield」,比如簡單地判斷replacementstring的長度是否為0。

接著我們可能還會遇到使用者已經輸入20個字元了,這時候繼續輸入---不過是選擇了部分文字進行替換-----無法進行了,這也妨礙了使用者的正常操作

2樓:匿名使用者

如果要限制uitextfield輸入長度最長不超過kmaxlength,那麼需要實現做以下操作:

1、實現uitextfielddelegate協議;

2、實現textfield:shouldchangecharactersinrange:replacementstring:方法;

- (bool)textfield:(uitextfield *)textfield shouldchangecharactersinrange:(nsrange)range replacementstring:

(nsstring *)string

方法- (bool)textfield:(uitextfield *)textfield shouldchangecharactersinrange:(nsrange)range replacementstring:

(nsstring *)string

功能:把textfield中位置為range的字串替換為string字串;

此函式在textfield內容被修改時呼叫;

返回值:

yes,表示修改生效;no,表示不做修改,textfield的內容不變。

引數說明:

textfield:響應uitextfielddelegate協議的uitextfield控制項。

range: uitextfield控制項中游標選中的字串,即被替換的字串;

range.length為0時,表示在位置range.location插入string。

string: 替換字串;

string.length為0時,表示刪除。

如何更好地健身?如何健身??

首先是心理,心理給自己的作用其實很大,相信自己能堅持下去。其次是自我認知了,對自己身體的了解情況來制定相應的飲食和運動計畫。如何健身?一 健身 1 健身方法很多,根據各自居家環境條件選擇自己適合自己的最好的方法。年齡及運動基礎不同在運動量和運動強度上要有所區別,可蹦可跳可做拉伸壓腿等動作,也可拳擊練...

如何更好地學習mysql資料庫,如何更好地學習Mysql資料庫

update worker view4 set name hi error.the target table worker view4 of the update is not updatable.4 檢視中的select中包含子查詢。create view worker view5 name as...

如何更好地運用好幽默

1 留心場合 所在的場合大體上可以分為兩類 正式場合和非正式場合。在正式場合上,盡量少用幽默,少開玩笑。在非正式場合,可以針對具體的人,結合具體的事情,說些幽默的話。2 注意方式所謂的方式 主要是針對人而言的,因為不同的幽默放在不同的人身上,所起到的效果可能會截然相反。對於那些性格開朗的人,幽默可以...