Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c NSTextField占位符文本不';除非编辑,否则不显示_Objective C_Cocoa_Macos_Nstextfield_Appkit - Fatal编程技术网

Objective c NSTextField占位符文本不';除非编辑,否则不显示

Objective c NSTextField占位符文本不';除非编辑,否则不显示,objective-c,cocoa,macos,nstextfield,appkit,Objective C,Cocoa,Macos,Nstextfield,Appkit,我在Interface Builder中设置了我的NSTextField的占位符文本,但占位符文本直到我在文本字段内单击以编辑它时才会显示。您是否尝试过通过代码设置占位符?例如,类似这样的事情: [[textField cell] setPlaceholderString:@"hello"]; 是否在Interface Builder中绑定了NSTextField数据?如果是这样,您必须在实用工具检查器的绑定选项卡中设置“多值占位符”、“无选择占位符”和“空占位符”。在进行此操作时,还

我在Interface Builder中设置了我的NSTextField的占位符文本,但占位符文本直到我在文本字段内单击以编辑它时才会显示。

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

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

是否在Interface Builder中绑定了NSTextField数据?如果是这样,您必须在实用工具检查器的绑定选项卡中设置“多值占位符”、“无选择占位符”和“空占位符”。在进行此操作时,还可以设置“无适用占位符”。

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

  • 子类
    NSTextFieldCell
  • 覆盖
    -(void)drawWithFrame:(NSRect)cellFrame
    -(void)drawInteriorWithFrame:
    (如果需要)NSCell的方法,并将所有需要的图形代码放入这些方法中不要忘记调用
    super
    实现
  • Interface Builder
    NSTextFieldCell
    Class
    字段设置为子类
  • .xib
    文件中设置
    边框
    (我不知道此边框的名称)
  • 关闭
    绘制背景

    这听起来与应该发生的完全相反。编辑字段时,占位符文本应消失。您是如何设置NSTextField的?有什么关系吗?请注意,仅当文本字段的stringValue为nil或@时,才会显示占位符字符串。文本字段没有绑定,其值也为空。我已经编辑了我的帖子来显示编辑/未编辑状态的截图。我也有同样的问题,你找到答案了吗?