1

我正在尝试创建特殊UITextField的文本将在一定数量的字符后分隔的地方。我知道可以使用-shouldChangeCharactersInRange委托。UITextField

现在,我需要一些更复杂的分隔,同时在UITextField. 我需要每 4 个字符后用一个空格分隔的字符。最后 2 个字符也应该用一个空格与其余字符隔开。

示例: XXNL XNLX XLMD XMLD XX

我知道我必须使用这种方法...

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

但是不知道用这个方法做什么。谁能帮我 ?

4

2 回答 2

0

在该委托方法中,您应该构建 textField 包含的字符串。然后,您可以检查字符串模 5 的长度是否为 4(以便在 4 个字符后触发,在 9 个字符(4 + 1 个空格 + 其他 4)后再次触发,依此类推。如果检查触发,您在 textField 文本上附加一个空格 @" "。

这样做的问题是,如果用户移动光标并更改文本,那么一切都会丢失。

您可以执行此操作的另一种方法是然后以相同的方法修剪字符串(删除所有空格),然后每 4 个字符再次添加空格

于 2013-08-30T10:51:50.920 回答
-1
See if you want that style of text then after every 4 characters in textfield text just add one space.and if length is total characters you want then don't allow any other characters.In shouldchangecharactersinRange: you have to insert 1 space programatically

if(textfield.text.length % 4 == 0) then 
    string = [string stringbyappendingstring:@""];

Do this it will fix your requirement and dont accept any characters after the length you need,like

if(textfield.text.length == someinteger) then 
     don't accept the string just return NO;
于 2013-08-30T10:38:24.327 回答