2011-07-20 8 views

答えて

5

あなたは、私がAnkitと同じ問題に直面したプログラムでキーの値@「_ placeholderLabel.font」

[self.input setValue:[UIFont fontWithName: @"American Typewriter Bold" size: 20] forKeyPath:@"_placeholderLabel.font"];

+0

私のプレースホルダーの垂直方向の配置が歪んでいます。 – Ankit

1

ため

おかげで....

- (void) drawPlaceholderInRect:(CGRect)rect { 
     [[self placeholder] drawInRect:rect withFont:[UIFont systemFontOfSize:13]]; 
} 
+0

メソッド呼び出しはどこですか?このメソッドはいつ呼ばれますか? –

+0

@PradeepReddyKypa UITextFieldでこのメソッドをオーバーライドすることができます。これは、iosがプレースホルダをレンダリングしようとしていると考えられます。 –

+1

この方法を使用する場合は、iOS 7のテキスト配置に注意してください。これで、textFieldの垂直方向の配置は考慮されなくなりました。長方形の原点を自分で移動する必要があります。 – Justin

4

私はプレースホルダのフォントのフォントサイズとスタイルは、フォントスタイルを設定することにより調整することができますがわかりましたインタフェースビルダーの実際のテキストについては、

+0

コードを使用してプレースホルダテキストを変更することはできますか?可能であれば、コードを投稿してください。 –

0

を設定することによってそれを行うことができ、私は、TextFieldのデリゲートでフォントサイズを変更することで、それを解決しました。

- (BOOL)textFieldShouldClear:(UITextField *)textField{ 
    [textField setFont:[UIFont fontWithName: @"American Typewriter Bold" size: 12]]; 
    return YES; 
} 
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ 
    if (range.location == 0 && range.length == 0) { 
     [textField setFont:[UIFont fontWithName: @"American Typewriter Bold" size: 18]]; 
    } 
    if(range.location == 0 && range.length == 1){ 
     [textField setFont:[UIFont fontWithName: @"American Typewriter Bold" size: 12]]; 
    } 
    return YES; 
} 
1

実際には、font \ font colorプロパティを設定する別の形式があります。

if ([self.textField respondsToSelector:@selector(setAttributedPlaceholder:)]) { 
    self.textField.attributedPlaceholder = [[NSAttributedString alloc] 
             initWithString:placeholder 
             attributes:@{ 
                NSForegroundColorAttributeName: newColor, 
                NSFontAttributeName:font, 
                NSBaselineOffsetAttributeName:[NSNumber numberWithFloat:offset] 
                }]; 
} else { 
    NSLog(@"Cannot set placeholder text's color, because deployment target is earlier than iOS 6.0"); 
     // TODO: Add fall-back code to set placeholder color. 
} 

NSBaselineOffsetAttributeNameに注意し、間違った垂直方向の配置問題を解決します。

関連する問題