作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的应用程序左侧有一个 NSTableView(主视图),右侧有一个文本字段(详细信息)
我使用核心数据和绑定(bind)来显示记录。
我有一个与 NSObjectController 绑定(bind)的文本文件。这是一个日期字段,我在文本字段中添加了 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 占位符?
我不能只在绑定(bind)检查器下的 NSTextField No Selection Placeholder 中输入 dd/mm/yy ,因为我不知道用户将拥有什么作为系统默认值。
最佳答案
不要绑定(bind) XIB 中的值,而是使用选项手动绑定(bind)它。
[self.offerExpiresOnDateTextField bind:NSValueBinding
toObject:self.objectController
withKeyPath:@"selection.date"
options:@{NSNoSelectionPlaceholderBindingOption:
self.offerExpiresOnDateFormatter.dateFormat}];
关于objective-c - 如何以编程方式替换使用绑定(bind)的 NSTextField 中的 "No Selection"占位符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35567066/
我是一名优秀的程序员,十分优秀!