2013-02-22 68 views
1

我已经建立了一个简单的if语句说,如果输入的长度等于3使下一个字符为“ - ”。以编程方式自动将一个整数添加到UILabel中?可能?

它运作良好,但我想在“ - ”自动被放在那里之后,我按下按钮,第3次。所以我按下“1”,“2”,然后当我按下“3”时,它会直接在后面自动放上一个“ - ”。目前只有当我第四次点击按钮时,“ - ”才会被放置?

-(IBAction)buttonDigitPressed:(id)sender { 

    NSString *val = phoneNumberLabel.text; 
    int length = [val length]; 

    } else { 
     NSString *tagValue = [NSString stringWithFormat:@"%d", [sender tag]]; 
     phoneNumberLabel.text = [val stringByAppendingString: tagValue]; 

     if (length == 3) { 
      phoneNumberLabel.text = [val stringByAppendingString:@"-"]; 

     } 

     if (length == 7) { 
      phoneNumberLabel.text = [val stringByAppendingString:@"-"]; 
     } 

    } 

} 

任何帮助将不胜感激,大大!谢谢!

回答

1
-(IBAction)buttonDigitPressed:(id)sender { 

    NSString *val = phoneNumberLabel.text; 
    NSString *newValue = @""; 
    NSString *dash = @""; 

    int length = [val length]; 

    if (((length == 3) || (length == 7))) { 
    dash = @"-"; 
    } 

    newValue = [NSString stringWithFormat:@"%@%@%d", val, dash, [sender tag]]; 
    phoneNumberLabel.text = newValue; 
} 
+0

谢谢,克雷格!很多爱 - 这对我很有用。 – 2013-02-22 20:10:40

+0

非常欢迎你! – 2013-02-22 20:12:03

0

只需添加的代码相同的方法更新与整数后的标签。

1

添加以下代码buttonClicked方法

if ([myLabel.text length] == 3) 
{ 
    myLabel.text = [val stringByAppendingString:@"-"]; 
} 
+0

我更新了上面的代码,以帮助在我的问题得到。有任何想法吗?非常感谢! – 2013-02-22 18:57:50

-1

您可以将按钮的事件。像[button sendActionsForControlEvents:UIControlEventTouchUpInside] 甚至在延迟后执行选择器可能会为你做诡计。 这两种情况你不需要按下按钮

对于添加“ - ”只是检查有多少个字符已输入和何时输入第三个字符添加“ - ”。

0

试试这个方法,希望这会帮助你。 使UILabel对象在xib中保持空白。

- (IBAction)pressAction:(UIButton*)sender 
{ 
    if (lbl.text.length<=2) { 
     lbl.text=[lbl.text stringByAppendingFormat:@"%i",sender.tag]; 
    } 

    if (lbl.text.length>=3){ 
     lbl.text=[lbl.text stringByAppendingString:@"-"]; 
    } 
} 
+0

@Sean赫尔曼试试这个方法 – Warewolf 2013-02-22 07:07:15

+0

我已经试过这一点 - 它不工作了我吗?也许我错过了一些东西。我更新了上面的代码以帮助解决我的问题。检查一下 - 也许我以前很难解释。谢谢! – 2013-02-22 18:58:26

相关问题