4

我想知道如何将 % 符号添加到插入 UiTextfield 的任何数字中,以便用户可以知道它是一个百分比,类似于在 Excel 中设置单元格类型时 $ 或 % 符号的工作方式。

我已经查看了整个堆栈溢出,但想知道除了使用观察者附加 % 之外是否还有其他方法。

4

3 回答 3

10

你想要的rightViewUITextField. 这是我写的一个小类别,可以帮助您为文本字段设置永久前缀或后缀:

@implementation UITextField (Additions)

- (void)setPrefixText:(NSString *)prefix
{
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectZero];
    [label setBackgroundColor:[UIColor clearColor]];
    [label setFont:[UIFont fontWithName:self.font.fontName size:self.font.pointSize]];
    [label setTextColor:self.textColor];
    [label setAlpha:.5];
    [label setText:prefix];

    CGSize prefixSize = [prefix sizeWithFont:label.font];
    label.frame = CGRectMake(0, 0, prefixSize.width, self.frame.size.height);

    [self setLeftView:label];
    [self setLeftViewMode:UITextFieldViewModeAlways];
    [label release];
}

- (void)setSuffixText:(NSString *)suffix
{
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectZero];
    [label setBackgroundColor:[UIColor clearColor]];
    [label setFont:[UIFont fontWithName:self.font.fontName size:self.font.pointSize]];
    [label setTextColor:self.textColor];
    [label setAlpha:.5];
    [label setText:suffix];

    CGSize suffixSize = [suffix sizeWithFont:label.font];
    label.frame = CGRectMake(0, 0, suffixSize.width, self.frame.size.height);

    [self setRightView:label];
    [self setRightViewMode:UITextFieldViewModeAlways];
    [label release];
}

@end

顺便说一句:https ://stackoverflow.com/search?q=uitextfield+rightview :截至目前有 4,099 个结果。

于 2012-09-04T16:49:37.057 回答
3
[NSString stringWithFormat:@"%d%%", number];
于 2012-09-04T16:50:05.803 回答
0

使用UITextFieldDelegate'textFieldDidEndEditing:方法。

例子:

- (void)textFieldDidEndEditing:(UITextField *)textField {

    NSString *oldText = textField.text;

    textField.text = [NSString stringWithFormat:@"%@ %%",oldText];
}
于 2017-02-08T11:55:24.523 回答