您可以在厦门国际银行文件附加共享格式化程序代替。在返回单元格的视图的委托方法,假设你的类是MyCellView
和MyCellView
有一个属性theTextField
,视图是由名为MyCellView.xib
一个XIB文件中加载:
- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
MyCellView *result = [tableView makeViewWithIdentifier:@"MyCellView" owner:self];
[result.theTextField setFormatter:[[self class] sharedFormatter]];
return result;
}
然后,你需要这个sharedFormatter
方法。 sharedFormatter
方法将设置一个懒惰的初始化单例。这是在iOS和Mac OS X的开发一个很常见的模式,它是学习,如果你以前没有见过一个好的:
+ (NSFormatter *)sharedFormatter {
static NSFormatter *formatter;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
formatter = [[NSFormatter alloc] init];
/* Set up the formatter's attributes here */
});
return formatter;
}
所以sharedFormatter
初始化它的静态formatter
变量最多一次(第一时间调用sharedFormatter
方法)。 dispatch_once
会导致其输入块中的所有代码只执行一次,甚至会照顾同步多线程中发生的调用(尽管我怀疑你会从多个线程调用sharedFormatter
)。
感谢您的详细回复!实际上,这几乎完全是我发布后尝试做的。唯一的区别是,我没有使用'dispatch_once'调用来使用实例方法,而不是类方法。我会用我最新的“问题”更新我的问题。 –
划伤我刚才说的一切。有效。我有一个日期格式问题。一切都会破坏一切。再次感谢。 –