我正在向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上的不良行为还是我遗漏了什么?
以上是一个简单的例子。我正在使用属性字符串,因此我可以设置字体和颜色属性。
答案 0 :(得分:0)
您是否可能为控件指定了绑定?如果是,则占位符属性字符串将被绑定的空占位符覆盖。
然后应该可以以编程方式绑定控件并将属性字符串指定为null占位符的选项,如下所示:
[textField bind:@"value" toObject:self withKeyPath:@"textFieldValue" options: @{NSNullPlaceholderBindingOption:string}];
还有一件事。我发现它可以在10.9 SDK中运行。