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

发布于 2024-10-29 03:32:43 字数 80 浏览 1 评论 0原文

我在 Interface Builder 中设置了 NSTextField 的占位符文本,但在我单击文本字段内部进行编辑之前,占位符文本不会显示。

I set the placeholder text of my NSTextField in Interface Builder, but the placeholder text doesn't show until I click inside the text field to edit it.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

谁的新欢旧爱 2024-11-05 03:32:43

您是否尝试过通过代码设置占位符?例如这样的事情:

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

Have you tried setting the placeholder through code? for example something like this:

    [[textField cell] setPlaceholderString:@"hello"];
眼中杀气 2024-11-05 03:32:43

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

Have you bound the NSTextField data in Interface Builder? If so, you have to set the "Multiple Values Placeholder", "No Selection Placeholder" and "Null Placeholder" in the bindings tab in your Utilities inspector. While youre at it, you could set the "No Applicable Placeholder" as well.

Oo萌小芽oO 2024-11-05 03:32:43

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

  1. Subclass NSTextFieldCell;
  2. 覆盖 - (void)drawWithFrame:(NSRect)cellFrame- (void)drawInteriorWithFrame: (如果需要)NSCell 的方法和将您需要的所有绘图代码放入这些方法中。 不要忘记调用super实现;
  3. Interface BuilderNSTextFieldCellClass字段设置为您的子类;
  4. .xib 文件中的 border 设置为 border (我不不知道这个边界的名称);
  5. 关闭绘制背景

This is how I solve this problem:

  1. Subclass NSTextFieldCell;
  2. Override - (void)drawWithFrame:(NSRect)cellFrame, - (void)drawInteriorWithFrame: (if need) method(s) of NSCell and put all drawing code you need to those methods. Don't forget to call super implementation;
  3. Set Class field of NSTextFieldCell in Interface Builder to your subclass;
  4. Setup border in .xib file to border (I don't know name of this border);
  5. Turn off Draw Background;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文