我确实使用对象来设置具有自定义字体和颜色的占位符setPlaceholderAttributedString:
。NSTextFieldCell
这是整个代码...
_statusMessageField = [[NSTextField alloc] initWithFrame:NSZeroRect];
[_statusMessageField setBordered:NO];
[_statusMessageField setBezeled:NO];
[_statusMessageField setFocusRingType:NSFocusRingTypeNone];
[_statusMessageField setDrawsBackground:NO];
[_statusMessageField setTextColor:TM_NS_COLOR(35, 37, 46)];
[_statusMessageField setFont:[NSFont systemFontOfSize:13.0]];
NSMutableAttributedString *placeholder = [[NSMutableAttributedString alloc] initWithString:@"What's up?"];
NSRange range = NSMakeRange( 0, [placeholder length] );
[placeholder addAttribute:NSFontAttributeName value:[NSFont systemFontOfSize:13.0] range:range];
[placeholder addAttribute:NSForegroundColorAttributeName value:TM_NS_COLORA( 92, 97, 114, 0.7 ) range:range];
[placeholder fixAttributesInRange:range];
[_statusMessageField.cell setPlaceholderAttributedString:placeholder];
_statusMessageField.translatesAutoresizingMaskIntoConstraints = NO;
[self addSubview:_statusMessageField];
...这让我发疯,因为...
- 占位符仅在
NSTextField
没有焦点时可见, - 当我单击时
NSTextField
,插入符号可见,尚未输入任何内容,但占位符消失,这是错误的,应该可见,直到输入至少一个字符,
...当我替换setPlaceholderAttributedString:
为(无归属)时,占位符的行为正确 - 在没有焦点或有焦点且尚未输入任何内容setPlaceholderString:
时可见。NSTextField
知道有什么问题吗?
这是图像http://d.pr/i/WoC9的链接,您可以在其中看到差异。