我想为 a NSTextField( 或NSSearchField) 设置一个默认值,并在用户单击它时删除此默认值,并在文本视图失去焦点且文本字段为空时重新设置。像这样:

听起来我应该扩展NSSearchField,但我想知道是否有更简单的解决方案。
我想为 a NSTextField( 或NSSearchField) 设置一个默认值,并在用户单击它时删除此默认值,并在文本视图失去焦点且文本字段为空时重新设置。像这样:

听起来我应该扩展NSSearchField,但我想知道是否有更简单的解决方案。
这个功能实际上是内置的;无需子类化或以其他方式扩展NSSearchField.
那是字段的占位符 string。您可以在 IB 中设置它,也可以通过调用setPlaceholderString:. 请注意,这是 的一种方法NSTextFieldCell。AnNSTextField是其单元的“公众面孔”,并且具有几乎所有单元功能的覆盖方法。但是,在这种情况下,您需要将消息直接发送到单元格:
[[field cell] setPlaceholderString:@"Jumbo jets"];
因为NSSearchField和分别NSSearchFieldCell继承自NSTextField和NSTextFieldCell,所以过程对它们来说是相同的。
使用在 NSTextFields 的 NSTextFieldCell 上设置占位符字符串
[[textField cell] setPlaceholderString:@"String Matching"];