您可以在廈門國際銀行文件附加共享格式化程序代替。在返回單元格的視圖的委託方法,假設你的類是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'調用來使用實例方法,而不是類方法。我會用我最新的「問題」更新我的問題。 –
劃傷我剛纔說的一切。有效。我有一個日期格式問題。一切都會破壞一切。再次感謝。 –