我有UITextfield
我希望用户输入以逗号分隔的文字
示例:elephant,fox等,另外我想限制用户输入最多7个以逗号分隔的单词。
我已在UITextfield
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSArray *numberOfWords = [self.tagsTextField.text componentsSeparatedByString:@","];
if([numberOfWords count] > 6)
{
return NO;
}
else
{
return YES;
}
}
我无法达到预期的行为请帮助!
答案 0 :(得分:0)
试试这个:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange: (NSRange)range replacementString:(NSString *)string
{
NSArray *numberOfWords = [self.tagsTextField.text componentsSeparatedByString:@","];
if([numberOfWords count] > 6 && [string isEqualToString:@","])
{
return NO;
}
else
{
return YES;
}
}
你可以阻止第二个空格等等。
答案 1 :(得分:0)
在您的代码中,它会限制用户输入第七个单词,并且在输入第6个单词后也不允许用户删除。
试试这段代码,
.pipe()
这将允许用户通过逗号分隔符输入最多7个单词,您也可以在输入7个单词后删除单词。
答案 2 :(得分:0)
请遵循以下代码:7逗号之后需要7个逗号它不会占用任何,但您可以在文本字段中写入或删除字符。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSArray *numberOfWords = [myTextField.text componentsSeparatedByString:@","];
NSLog(@"%d",(int)numberOfWords.count);
NSLog(@"%@",numberOfWords);
if([numberOfWords count] > 7 && [string isEqualToString:@","])
{
return NO;
}
else
{
return YES;
}
}
希望这能帮到你..
更新:
如果在文本字段中粘贴复制的文本,则此代码不起作用。要禁用textField的复制/粘贴,请使用以下代码:Already Mentioned here
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
if (action == @selector(paste:))
return NO;
return [super canPerformAction:action withSender:sender];
}