无法设置UITextField的attributesText属性

时间:2015-04-23 09:41:41

标签: ios objective-c uitextfield

我创建了一个NSMutableAttributedString,我尝试将其分配给textField.attributedText属性,但它不起作用。

情境描述:

1)最初我prefix

placeholdertextField

enter image description here

2)当我输入phone number时,placeholder会被替换,并且会在位置2添加x points的学习。

enter image description here

3)删除所有数字并结束编辑后,所有文字的格式均为2分!?我不明白为什么。

enter image description here

我的解决方案: 我创建了一个空的NSMutableAttributedString(finalString),并附加了2 NSMutableAttributedString's (prefix + placeholder or digit),每个格式都相应。

代码为:

(void)updateAttributedTextFieldPrefix:(NSString *)prefix andText:(NSString *)newText {

NSMutableAttributedString * finalString = [[NSMutableAttributedString alloc] initWithString:@""];

// Create the Prefix String
NSMutableAttributedString * subString = [[NSMutableAttributedString alloc] initWithString:prefix];
[subString addAttribute:NSForegroundColorAttributeName value:kGray range:NSMakeRange(0, [prefix length])];
[finalString appendAttributedString:subString];

// Create the Phone Number String
NSMutableAttributedString * phoneNumber = [[NSMutableAttributedString alloc] initWithString:newText];
[phoneNumber addAttribute:NSForegroundColorAttributeName value:kWhite range:NSMakeRange(0, [phoneNumber length])];
[finalString appendAttributedString:phoneNumber];

// Add kearning between the two components
[finalString addAttribute:NSKernAttributeName value:[NSNumber numberWithInt:2] range:NSMakeRange([prefix length] - 1, 1)];
// Addidng the bold font
UIFont *font16 = [UIFont fontWithName:@"HelveticaNeue-Bold" size:16];
[finalString addAttribute:NSFontAttributeName value:font16 range:NSMakeRange(0, [finalString length])];

// LINE THAT HAS NO EFFECT !!!
self.textFieldForPhone.attributedText = finalString;

}

为什么不设置attributedText属性?我该如何解决这个问题?

0 个答案:

没有答案