【问题标题】:NSTextField placeholder text doesn't show unless editingNSTextField 占位符文本不显示,除非编辑
【发布时间】:2011-07-28 00:45:19
【问题描述】:

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

【问题讨论】:

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

标签: objective-c cocoa macos nstextfield appkit


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-08
        • 1970-01-01
        • 1970-01-01
        • 2016-08-29
        相关资源
        最近更新 更多