以编程方式将%符号添加到UITextField

Sta*_*ner 4 cocoa-touch objective-c ios

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

我已经查看了堆栈溢出但是想知道是否还有其他方法,而不是使用观察者附加%.

Cyr*_*lle 9

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

@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
Run Code Online (Sandbox Code Playgroud)

顺便说一下:https://stackoverflow.com/search q = uitextfield + rightview:截至目前的4,099结果.