4

UiTextfield に挿入された数値に % 記号を追加する方法を知りたいので、Excel でセル タイプを設定するときに $ または % 記号が機能するのと同様のパーセンテージであることをユーザーが認識することができます。

私はスタックオーバーフロー全体を見てきましたが、オブザーバーを使用して % を追加する以外の方法があるかどうか疑問に思っていました.

4

3 に答える 3

10

必要なのはの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

ちなみに: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 に答える