NSTextField 占位符文本不会显示,除非编辑
我在 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您是否尝试过通过代码设置占位符?例如这样的事情:
Have you tried setting the placeholder through code? for example something like this:
您是否在 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.
这就是我解决这个问题的方法:
NSTextFieldCell
;- (void)drawWithFrame:(NSRect)cellFrame
、- (void)drawInteriorWithFrame:
(如果需要)NSCell
的方法和将您需要的所有绘图代码放入这些方法中。 不要忘记调用super
实现;Interface Builder
中NSTextFieldCell
的Class
字段设置为您的子类;.xib
文件中的border
设置为 (我不不知道这个边界的名称);绘制背景
;This is how I solve this problem:
NSTextFieldCell
;- (void)drawWithFrame:(NSRect)cellFrame
,- (void)drawInteriorWithFrame:
(if need) method(s) ofNSCell
and put all drawing code you need to those methods. Don't forget to callsuper
implementation;Class
field ofNSTextFieldCell
inInterface Builder
to your subclass;border
in.xib
file to (I don't know name of this border);Draw Background
;