Objective c 如何在表格列中显示NSDate
我有一个列为“name”和“date”的表 我希望日期以“dd/MM/yy”格式显示,但它显示为“2012年4月13日星期五印度标准时间上午12:00:00” 我有以下代码: 人Objective c 如何在表格列中显示NSDate,objective-c,cocoa,Objective C,Cocoa,我有一个列为“name”和“date”的表 我希望日期以“dd/MM/yy”格式显示,但它显示为“2012年4月13日星期五印度标准时间上午12:00:00” 我有以下代码: 人 @interface Person : NSObject{ NSString *name; NSDate *date; } @property(retain) NSString *name; @property(retain) NSDate *date; 人 #import "Person.h"
@interface Person : NSObject{
NSString *name;
NSDate *date;
}
@property(retain) NSString *name;
@property(retain) NSDate *date;
人
#import "Person.h"
@implementation Person
@synthesize name;
@synthesize date;
- (id)init {
self = [super init];
self.date = [NSDate date];
return self;
}
- (void)dealloc {
[name release];
[date release];
[super dealloc];
}
现在,在向表中添加数据时,我编写了以下代码
Person *data = [Person new];
[data setName:@"abc"];
NSString *dateStr = @"13/04/12";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"dd/MM/yy"];
NSDate *date = [dateFormat dateFromString:dateStr];
[data setDate:date];
[arrayController addObject:data];
[data release];
arrayController是NSArrayController。 在nstable中添加所有条目后将Person对象添加到arrayController [tableView reloadData]更新表视图 但在表中显示“2012年4月13日星期五印度标准时间上午12:00:00”
请建议任何解决方案。看起来您正在使用基于单元格的NSTableView 如果您想通过代码实现这一点: 您应该实现NSTableViewDelegate方法:
-tableView:dataCellForTableColumn:row:
创建NSCell实例后,将格式化程序设置为此单元格实例(创建NSDateFormatter实例并进行设置),使用[NSCell setFormatter://code>方法
通过IB:
搜索NSDateFormatter,然后将其拖放到单元格上,该单元格应显示此日期。它还将为您提供修改日期格式化程序行为的选项,但您希望能够更改显示格式,因为它是从区域设置获得的。请更明确地解释此“控制器”与tableview之间的关系。arrayController是NSArrayColler,在nstable[tableView reloadData]中添加所有条目后,将Person对象添加到arrayController中被称为ure,我理解-我认为您需要在问题中更好地解释它。是否有任何选项可以将日期格式“dd/MM/yy”设置为xib中的nstable列。您必须找到为tableView创建文本日期的格式化程序。NSDate对象不包含格式(或时区——它是UTC)。