何人かが指摘したように、安全なテキスト フィールドはカスタム フォントで常にうまく機能するとは限りません。UITextFieldを使用してテキストUIControlEventEditingChanged
フィールドへの変更を監視し、何かが入力されたときにシステムフォント(通常の箇条書き)に設定することでこれを回避し、それ以外の場合はカスタムフォントを使用しました。
これにより、テキスト フィールドのプレースホルダーにカスタム フォントを使用し続けることができ、パスワードが入力されたときに見栄えがよくなります。入力中に一文字づつ表示される文字はシステムフォントになりますが、私はそれでいいです。
ビューでDidLoad:
[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];
}
}
}