我正在制作一個唯一的數字輸入應用程式(仍然),其中用戶按下一個按鈕,我將一個值存盤到一個字串中以顯示在標簽中。
大多數情況下都很好用,除了我不知道如何防止用戶在單個字串中輸入多個小數。.
我查看了這個堆疊溢位問題,但試圖為我自己修改代碼卻導致了一大堆錯誤。有人有建議嗎?
- (void)numberBtn:(UIButton *)sender {
if (self.sales.text.length < 10) {
if(self.sales.text.length != 0){
NSString *lastChar = [self.sales.text substringFromIndex:[self.sales.text length] - 1];
if([lastChar isEqualToString:@"."] && [sender.titleLabel.text isEqualToString:@"."] && [sender.titleLabel.text stringByAppendingString:@"."]){
return;
}
if ([lastChar isEqualToString:@""] && [sender.titleLabel.text isEqualToString:@""]){
self.numbers = @"0.";
}
if ([self.sales.text rangeOfString:@"."].length > 0) {
NSArray *array = [self.sales.text componentsSeparatedByString:@"."];
if (array.count == 2) {
NSString *decimal = array.lastObject;
if (decimal.length > 2) {
return;
}
}
}
}
self.numbers = [NSString stringWithFormat:@"%@%@",self.numbers,sender.titleLabel.text];
self.sales.text = self.numbers;
}
}
uj5u.com熱心網友回復:
兩步...
- 檢查按鈕是否為小數
. - 如果是,查看當前標簽文本是否已經包含一個
.
如果是,請回傳。如果沒有,請繼續處理您的按鈕輸入:
- (void)numberBtn:(UIButton *)sender {
NSString *btnTitle = sender.currentTitle;
NSString *curText = self.sales.text;
if ([btnTitle isEqualToString:@"."]) {
if ([curText containsString:@"."]) {
NSLog(@"%@ : Already has a decimal point!", curText);
return;
}
}
// whatever else you want to do with the input...
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/482399.html
