Objective c 如何在表格列中显示NSDate

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"

我有一个列为“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"

@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)。