我想知道如何在任何插入到UiTextfield中的数字上添加一个%符号,以便用户可以了解它是类似于在Excel中设置单元格类型时$或%符号工作的百分比。我已经在stackoverflow上看过了,但是想知道是否有其他方法而不是使用观察者附加一个%。
你想要的是UITextField
的rightView
属性。这是我编写的一个小类别,可以帮助你为文本字段设置永久前缀或后缀:
@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个结果。
[NSString stringWithFormat:@"%d%%", number];
使用 UITextFieldDelegate
的 textFieldDidEndEditing:
方法。
示例:
- (void)textFieldDidEndEditing:(UITextField *)textField {
NSString *oldText = textField.text;
textField.text = [NSString stringWithFormat:@"%@ %%",oldText];
}