Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将iOS中的UIlabel文本字段限制为两个字符,输入3个或更多字符时重置_Ios_Objective C_Uibutton_Uilabel - Fatal编程技术网

将iOS中的UIlabel文本字段限制为两个字符,输入3个或更多字符时重置

将iOS中的UIlabel文本字段限制为两个字符,输入3个或更多字符时重置,ios,objective-c,uibutton,uilabel,Ios,Objective C,Uibutton,Uilabel,我是一个学习iOS开发的初学者 我试图将标记为“Factor”的标签的内容限制为只允许0到99之间的2个整数。我还想强制用户为每个因子尝试输入至少两位数字(即,“7”将是“07”) 用户不直接编辑标签。有一个数字键盘,用户可以使用它直接输入系数(就像在计算器或遥控器上一样)。还有一个递增和递减按钮,用于修改标签文本 我对标签进行了限制,使其在按下递增或递减按钮时不会超过99或低于0。但是我被困在如何限制用户按3个或更多的数字,以及如何在标签文本中填充这些数字上 当前行为: 目前,如果我按“9”、

我是一个学习iOS开发的初学者

我试图将标记为“Factor”的标签的内容限制为只允许0到99之间的2个整数。我还想强制用户为每个因子尝试输入至少两位数字(即,“7”将是“07”)

用户不直接编辑标签。有一个数字键盘,用户可以使用它直接输入系数(就像在计算器或遥控器上一样)。还有一个递增和递减按钮,用于修改标签文本

我对标签进行了限制,使其在按下递增或递减按钮时不会超过99或低于0。但是我被困在如何限制用户按3个或更多的数字,以及如何在标签文本中填充这些数字上

当前行为:
目前,如果我按“9”、“0”和“1”,结果将是“901”。
我的目标是按“9”、“0”、“1”,然后看到“1”
换句话说,将永远不会显示超过2个字符,并且一旦按下第三个数字,它将覆盖现有的两个字符

以下是我对数字按钮所做的操作:

- (IBAction)numPush:(UIButton *)sender {
NSString *number = sender.currentTitle;
if (self.numberCheck)
{        self.fDisp.text = [self.fDisp.text
                          stringByAppendingString:number];
}
else
{
    self.fDisp.text = number;
    self.numberCheck = YES;
}
}

您可以简单地检查标签字符串的长度

    if ([self.fDisp.text length] == 2)
      self.fDisp.text = sender.currentTitle;
   else
     self.fDisp.text = [self.fDisp.text
                          stringByAppendingString:number];

我认为这很容易做到。请看下面我的解决方案,我认为它应该适用于您的情况

- (IBAction)numPush:(UIButton *)sender {
   NSString *number = sender.currentTitle;
   if([self.fDisp.text length] == 2)
    self.fDisp.text = sender.currentTitle;
   else 
    self.fDisp.text = [self.fDisp.text stringByAppendingString:number];

}