如何在使用绑定的NSTextField中以编程方式替换“No Selection”占位符?
我的应用程序有一个NSTableView的左侧(主)和文本框右侧(详细信息)如何在使用绑定的NSTextField中以编程方式替换“No Selection”占位符?
我使用的核心数据&结合以获得显示的记录。
我有一个与NSObjectController绑定的文本文件。这是一个日期字段,我在文本字段中添加了NSDateFormatter。
我的目标是:在该文本字段上使用用户系统默认日期格式占位符。我已经实现了用下面的代码
.H代码:(仅相关的代码张贴)
@property (weak) IBOutlet NSDateFormatter *offerExpiresOnDateFormatter;
@property (weak) IBOutlet NSTextField *offerExpiresOnDateTextField;
与.m代码:
-(void)viewWillAppear {
[_offerExpiresOnDateFormatter setDateStyle:NSDateFormatterShortStyle];
[_offerExpiresOnDateTextField setPlaceholderString:[_offerExpiresOnDateFormatter dateFormat]];
}
这一切工作。
我的问题:
它的工作原理,只有当应用程序负载(因为我用viewWillAppear中)。
占位符以dd/mm/yy格式显示,我的系统默认格式。但是,如果在NSTableView中单击空行,我的占位符将消失,并显示“无选择”占位符。
我该如何预防?
当用户单击NSTableView中的空行时,如何显示我的dd/mm/yy占位符?
我不能只在绑定检查器下的NSTextField No Selection Placeholder中键入dd/mm/yy,因为我不知道用户将作为系统默认值具有什么功能。
不要绑定XIB中的值,用选项手动绑定它。
[self.offerExpiresOnDateTextField bind:NSValueBinding
toObject:self.objectController
withKeyPath:@"selection.date"
options:@{NSNoSelectionPlaceholderBindingOption:
self.offerExpiresOnDateFormatter.dateFormat}];
我得到一个错误[
哎呀错了,我必须多加注意。我编辑了我的答案。 – Willeke
完美。奇迹般有效。谢谢。 – user2417624
试图拖动和从对象库滴'NSDateFormatter'对象'NSTextField'在故事板,并设置日期和时间风格属性检查器。注释掉你的代码并尝试这种方式。 – Khundragpan
尝试绑定没有选择占位符到您的视图控制器的关键路径'offerExpiresOnDateFormatter.dateFormat'。 – Willeke
@Willeke,你能告诉我该怎么做吗? – user2417624