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

Posted

技术标签:

【中文标题】将 iOS 中的 UIlabel 文本字段限制为两个字符,输入 3 个或更多时重置【英文标题】:limit UIlabel text field in iOS to two characters, reset when 3 or more are entered 【发布时间】:2014-05-11 16:18:33 【问题描述】:

我是一名学习 ios 开发的初学者。

我试图将标记为“因子”的标签的内容限制为仅允许 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;


【问题讨论】:

【参考方案1】:

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

- (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];


【讨论】:

【参考方案2】:

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

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

【讨论】:

以上是关于将 iOS 中的 UIlabel 文本字段限制为两个字符,输入 3 个或更多时重置的主要内容,如果未能解决你的问题,请参考以下文章

UILabel - iOS 8 Xcode 6.3 中的单行文本占用 2 行

UITextView 限制字符并显示剩余计数

ios之UILabel实现文本自适应方法

Cocoa - iOS - 更新 UILabel 的文本属性是不是需要 setNeedsDisplay?

如何将 UITextField 数据复制到 UILabel

ios中uilabel中的虚线文本