1

我正在向 NSTextField 添加一个占位符:

NSTextField *textField = [[NSTextField alloc] initWithFrame:NSMakeRect(0.0, 0.0, 100.0, 30.0)];
NSAttributedString *string = [[NSAttributedString alloc] initWithString:@"Hello, World"];
[textField.cell setPlaceholderAttributedString:string];

这可行,但是当我关注文本字段时,占位符会消失,即使stringValue是空的也是如此。

如果我只使用setPlaceholderString:方法设置占位符,则占位符会一直保留到stringValue不为空为止。

这只是 AppKit 的不良行为还是我错过了什么?

上面是一个简单的例子。我正在使用属性字符串,所以我可以设置字体和颜色属性。

4

1 回答 1

0

您是否可以为控件指定绑定?如果是,您的占位符属性字符串将被绑定的空占位符覆盖。

然后应该可以以编程方式绑定控件并将属性字符串指定为 null 占位符的选项,如下所示:

[textField bind:@"value" toObject:self withKeyPath:@"textFieldValue" options: @{NSNullPlaceholderBindingOption:string}];

还有一件事。我发现它适用于 10.9 SDK。

于 2014-06-11T12:25:46.877 回答