我创建了一个简单的项目:https://github.com/edzio27/textFieldExample.git
我在其中添加了两个 UITextField
,一个带有登录名,第二个带有安全密码。我注意到有奇怪的行为:
- 点击登录并添加一些文字,
- 点击密码并添加一些文本,
- 再次点击登录
UITextField
请注意,密码字体大小有一个奇怪的行为。它仅出现在 iOS7 中。
可能是什么问题?
谢谢。
最佳答案
正如一些人指出的那样,安全文本字段似乎并不总是能很好地与自定义字体配合使用。我通过使用 UITextField 的 UIControlEventEditingChanged
来监视文本字段的更改并在输入任何内容时将其设置为系统字体(带有正常外观的项目符号)来解决这个问题,否则使用我的自定义字体。
这使我可以继续为文本字段占位符使用我的自定义字体,并且在输入密码时仍然看起来不错。输入时一次显示一个的字符将是系统字体,但我同意这一点。
在viewDidLoad中:
[self.passwordTextField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
现在添加一个 textFieldDidChange 方法:
- (void)textFieldDidChange:(id)sender
{
UITextField *textField = (UITextField *)sender;
if (textField == self.passwordTextField) {
// Set to custom font if the textfield is cleared, else set it to system font
// This is a workaround because secure text fields don't play well with custom fonts
if (textField.text.length == 0) {
textField.font = [UIFont fontWithName:@"OpenSans" size:textField.font.pointSize];
}
else {
textField.font = [UIFont systemFontOfSize:textField.font.pointSize];
}
}
}
关于ios - 在 iOS7 中更改安全 UITextField 奇怪行为中的 UIFont,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19475918/