Мое приложение имеет один NSTableView слева (мастер) и текстовых полей справа (подробнее)Как заменить программный блок «Нет выбора» в NSTextField, который использует привязку?
Я использую основные данные & обязательными для получения записей, отображаемых.
У меня есть текстовый файл, связанный с 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, мой заполнитель исчезнет, и появится «No Selection».
Как я могу предотвратить это?
Как я могу указать место для dd/mm/yy, когда пользователь нажимает на пустую строку в NSTableView?
Я не могу просто ввести dd/mm/yy в NSTextField No Selection Placeholder под обязательным инспектором, так как я не знаю, что пользователь будет использовать по умолчанию.
Попробуйте перетащить объект NSDateFormatter из библиотеки объектов в NSTextField в Storyboard и установить стиль даты и времени в атрибуте Inspector. Прокомментируйте свой код и попробуйте этот путь. – Khundragpan
Попробуйте привязать No Selection Placeholder к ключевому пути 'offerExpiresOnDateFormatter.dateFormat' вашего контроллера представления. – Willeke
@ Уилле, не могли бы вы рассказать мне, как это сделать? – user2417624