gpt4 book ai didi

objective-c - 如何以编程方式替换使用绑定(bind)的 NSTextField 中的 "No Selection"占位符?

转载 作者:行者123 更新时间:2023-12-03 17:48:43 25 4
gpt4 key购买 nike

我的应用程序左侧有一个 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com