我是编程方面的新手,刚刚开始实现目标C.我创建了一个文本字段,我想在其中允许“。”只进入一次!根据我的理解,rangeOfString应该能够做到这一点。
-(IBAction)floatingPoint:(UIButton *) sender {
NSString *floatingPoint = [sender currentTitle];
NSRange range = [floatingPoint rangeOfString:@"."];
if (range.location == NSNotFound) {
self.display.text =
[self.display.text stringByAppendingString:floatingPoint];
}
}
据我所知,代码floatingPoint rangeOfString:@“。”会检查“。”在currentTitle中,如果未找到,则应在此字符串后附加“。”
但是没有发生这种情况,没有输入小数点。如果我只输入
self.display.text = [self.display.text stringByAppendingString:floatingPoint];
,则文本字段允许输入超过1个小数点。
对不起,如果我错误地描述了这个问题,我对所有这些东西都是新手,而这已经开始沉沦了。
答案 0 :(得分:1)
另一种方法是将UITextField
委托添加到.h
,然后使用textField:shouldChangeCharactersInRange:replacementString:
检查字符串是否已包含.
,如果有,则返回NO
,如果不存在则返回YES
。
答案 1 :(得分:1)
您正在检查.
的按钮标题。您可能在按钮中将按钮的标题设置为.
,因此它当然总是包含.
!
您需要检查.
的文本字段文本。试试这个:
NSRange range = [self.display.text rangeOfString:floatingPoint];