除非编辑,否则不会显示NSTextField占位符文本

时间:2011-04-01 22:25:21

标签: objective-c cocoa macos nstextfield appkit

我在Interface Builder中设置了NSTextField的占位符文本,但是直到我在文本字段内单击进行编辑才会显示占位符文本。其他人有这个问题吗?

由于

编辑:截图。当我不编辑它时,这是该字段的样子:

Not editing http://cl.ly/2a0R1h1p2A082g1t1b3q/Screen_Shot_2011-04-01_at_6.51.25_PM.png

这就是我编辑时的样子:

Editing http://cl.ly/1c2d1U233R3j3k0M2E2Q/Screen_Shot_2011-04-01_at_6.51.32_PM.png

3 个答案:

答案 0 :(得分:28)

您是否尝试过通过代码设置占位符?例如:

    [[textField cell] setPlaceholderString:@"hello"];

答案 1 :(得分:19)

您是否在Interface Builder中绑定了NSTextField数据?如果是这样,则必须在“实用程序”检查器的“绑定”选项卡中设置“多值占位符”,“无选择占位符”和“空占位符”。在你的时候,你也可以设置“No Applicable Placeholder”。

答案 2 :(得分:-2)

这就是我解决这个问题的方法:

  1. 子类NSTextFieldCell;
  2. 覆盖- (void)drawWithFrame:(NSRect)cellFrame的{​​{1}},- (void)drawInteriorWithFrame:(如果需要)方法,并将所需的所有绘图代码放入这些方法中。 不要忘记致电NSCell 实施;
  3. superClass的{​​{1}}字段设置为您的子类;
  4. NSTextFieldCell文件中的Interface Builder设置为border(我不知道此边框的名称);
  5. 关闭border;