我的应用左侧有一个NSTableView(主),右侧有文本字段(详情)
我使用核心数据&绑定以显示记录。
我有一个与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占位符中键入dd / mm / yy,因为我不知道用户将拥有什么作为系统默认值。
答案 0 :(得分:1)
不要绑定XIB中的值,使用选项手动绑定它。
[self.offerExpiresOnDateTextField bind:NSValueBinding
toObject:self.objectController
withKeyPath:@"selection.date"
options:@{NSNoSelectionPlaceholderBindingOption:
self.offerExpiresOnDateFormatter.dateFormat}];