0

私は自分のを少しカスタマイズしようとしています。NSTextFields最初のステップは、をカスタマイズすることplaceholderです。

プレースホルダーの色を変更したいのですが、この方法で試しています:

- (void)awakeFromNib {

    // Color for placeholder in NSTextField - Color: #cdc9c1
    NSColor *placeholderColor = [NSColor colorWithCalibratedRed:0.80f green:0.78f blue:0.75f alpha:1.0f];

    NSDictionary *placeholderAttributeDict = [NSDictionary dictionaryWithObject:placeholderColor forKey:NSForegroundColorAttributeName];

    NSAttributedString *emailPlaceholderString = [[NSAttributedString alloc] initWithString:@"Email" attributes:placeholderAttributeDict];
    // NSAttributedString *passPlaceholderString = [[NSAttributedString alloc] initWithString:@"Password" attributes:placeholderAttributeDict];

   // NSTextField Email attributes
   [[self emailTextField] setDrawsBackground:NO];
   [[self emailTextField] setBordered:NO];
   [[[self emailTextField] cell] setPlaceholderAttributedString:emailPlaceholderString];

   // NSTextField Password attributes
   [[self passTextField] setDrawsBackground:NO];
   [[self passTextField] setBordered:NO];
   [[[self emailTextField] cell] setPlaceholderString:@"Password"];
}

ご覧のとおり、最初の最初のプレースホルダーは、色を指定しようとする場所NSTextFieldによって確立されます。NSAttributedString2 番目の 2 番目のプレースホルダーNSTextFieldNSString.

アプリケーションを実行すると、2 番目のみが表示されますNSTextField。最初のものはどこにも表示されません。

何が起こっている?

ありがとうございます。

4

1 に答える 1

1

同じ emailTextField を 2 回設定しています...

[[[self emailTextField] cell] setPlaceholderAttributedString:emailPlaceholderString];

[[[self emailTextField] cell] setPlaceholderString:@"Password"];

(それは問題を修正しますか、それとも質問の単なるエラーでしたか?)

于 2012-12-20T04:29:09.967 に答える