为iOS创建价格金额UILabel

时间:2013-08-02 01:48:47

标签: iphone ios objective-c uilabel

我想知道是否有一种简单的方法可以在不使用子串和范围的情况下执行此操作。基本上我想要在UILabel中完成输入价格金额。

示例:

enter image description here

当用户输入时,我想输入价格,显然需要从右到左,一旦我得到美元 - 根据需要追加。我看了这个answer,但没有随处可见。这有点棘手,因为美元符号和小数点是UILabel的一部分,现在我只是设置UILabel = textfield.text的文本。任何想法都赞赏。

2 个答案:

答案 0 :(得分:0)

这很简单。您可以自定义数字键盘。

方法就像这样:

  1. 添加键盘向上滑动的通知

    [[NSNotificationCenter defaultCenter] addObserver:self                                          选择:@选择(keyboardWillShow :)                                              名称:UIKeyboardWillShowNotification                                            对象:无];

  2. 完成整件事后,不要忘记将观察者从通知中心移除到适当的位置:

    [[NSNotificationCenter defaultCenter] removeObserver:self];
    

    2.我们在keyboardWillShow方法中所要做的就是找到键盘视图并添加我们的按钮。键盘视图是我们应用程序的第二个UIWindow的一部分,正如其他人已经想到的那样(参见此主题)。所以我们引用那个窗口(在大多数情况下它将是第二个窗口,所以下面代码中的objectAtIndex:1很好),遍历它的视图层次结构,直到找到键盘并在左下方添加按钮:

    - (void)keyboardWillShow:(NSNotification *)note {  
        // create custom button
        UIButton *doneButton = [UIButton buttonWithType:UIButtonTypeCustom];
        doneButton.frame = CGRectMake(0, 163, 106, 53);
        doneButton.adjustsImageWhenHighlighted = NO;
        [doneButton setImage:[UIImage imageNamed:@"DoneUp.png"] forState:UIControlStateNormal];
        [doneButton setImage:[UIImage imageNamed:@"DoneDown.png"] forState:UIControlStateHighlighted];
        [doneButton addTarget:self action:@selector(doneButton:) forControlEvents:UIControlEventTouchUpInside];
    
        // locate keyboard view
        UIWindow* tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1];
        UIView* keyboard;
        for(int i=0; i<[tempWindow.subviews count]; i++) {
            keyboard = [tempWindow.subviews objectAtIndex:i];
            // keyboard view found; add the custom button to it
            if([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES)
                [keyboard addSubview:doneButton];
        }
    }
    

答案 1 :(得分:0)

您可以使用AttributedString在UILabel上显示$ sign。