Xcode NSArray和tableview可可应用程序
我有一个带有多个属性的对象实例的Xcode NSArray和tableview可可应用程序,xcode,cocoa,Xcode,Cocoa,我有一个带有多个属性的对象实例的NSArray。我想知道如何在cocoa应用程序的tableview中显示实例的NSString和int属性。对不起,我是新手 卡片被设计用来保存单个卡片的属性 deck设计用于容纳一个NSArray,其中填充有卡片和名称,以便deckBuilder和deckstructure引用 deckBuilder用于基于其属性newDeck构建甲板实例。(newDeck从所有可能的卡片开始,复制时删除卡片条目以创建新的卡片组) deckConstruction是一个用户界
NSArray
。我想知道如何在cocoa应用程序的tableview中显示实例的NSString
和int属性。对不起,我是新手
卡片被设计用来保存单个卡片的属性
deck
设计用于容纳一个NSArray
,其中填充有卡片和名称,以便deckBuilder
和deckstructure
引用
deckBuilder
用于基于其属性newDeck
构建甲板实例。(newDeck
从所有可能的卡片开始,复制时删除卡片条目以创建新的卡片组)
deckConstruction
是一个用户界面,.xib包含一个表,用于显示NSMutableArray
、deck中的卡名以及NSMutableArray
、numberoff中的数字值
但是,我找不到关于如何从数组填充此表的源代码。(提供的代码由这些对象的4.h文件组成)
//这是卡对象
//卡片
//项目JJ
//
//由来宾用户于2014年3月23日创建。
//
//
#进口
@接口卡:NSObject
{
//定义卡片的组成部分
NSString*名称;
NSString*属性;
浮子液位;
NSString*类型;
NSString*信息;
漂浮攻击;
浮动防守;
浮点数;
}
@属性(读写)NSString*名称;
@属性(读写)NSString*属性;
@属性(读写)浮动级别;
@属性(读写)NSString*类型;
@属性(读写)NSString*info;
@属性(读写)浮动攻击;
@财产(读写)浮动防御;
@属性(读写)float cardNum;
-(b)信用卡;
@结束
//这是甲板对象
//甲板
//卡德西姆
//
//由来宾用户于2014年4月11日创建。
//
//
#进口
#导入“Card.h”
//用户组的组对象
@接口组:NSObject
{
NSString*deckName;//组名
NSMUTABLEARRY*allCards;//将在界面中显示数据库中的所有卡,以便用户可以从中选择
NSArray*numCardsInDeck;//将是下一个allCards,指示数据库中用户放入其卡片组的每个卡片的数量
NSMutableArray*cardsInDeck;//该组中的实际卡
}
@属性(读写)NSString*deckName;
@属性(读写)NSArray*所有卡;
@财产(读写)卡*impendingFortress;
@财产(读写)卡*;
@财产(读写)卡*城堡骑士;
@财产(读写)卡*Fortress Archer;
@财产(读写)卡*堡垒法师;
@财产(读写)卡*AppalOpticBeast;
-(作废)setDeckCards:(NSArray*)c;
@结束
//这是NSWindowController
//甲板结构
//卡德西姆
//
//由来宾用户于2014年4月2日创建。
//
//
#进口
#导入“deckBuilder.h”
#导入“deck.h”
@接口结构:NSWindowController
{
NSMutableArray*甲板;
NSMUTABLEARRY*numberoff;
deckBuilder*deckMaker;
}
@属性(读写)NSString*deckName;
-(void)setdeck:(NSMutableArray*)a;
@结束
//
//甲板建造商
//卡德西姆
//
//由来宾用户于2014年4月18日创建。
//
//
#进口
#导入“deck.h”
#导入“card.h”
@接口生成器:NSObject
{
甲板*新甲板;
NSArray*numCard;
}
-(甲板*)康迪克;
@结束
我也是新手,现在只使用Objective-c
Cocoa中的新TableView在每个单元格中都包含nsview表。为每个单元格添加值。您将需要将dependencry添加到它管理视图的类中
AppDelegate:< NSTableViewDataSource, NSTabViewDelegate>
AppDelegate:
记住将表链接到此类。
你需要让talbe知道它有多少行
- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView{
return <number of row in the data>;
}
-(NSInteger)行数表视图:(NSTableView*)表视图{
返回;
}
在实现中,您调用
- (NSView *)tableView:(NSTableView *)tableView
viewForTableColumn:(NSTableColumn *)tableColumn
row:(NSInteger)row
{
NSTextField *result = [[NSTextField alloc] initWithFrame:[<your tableview> frame]];
// Add your custom for the cell in here.
return [result autorelease];
}
-(NSView*)表视图:(NSTableView*)表视图
viewForTableColumn:(NSTableColumn*)tableColumn
行:(NSInteger)行
{
NSTextField*结果=[[NSTextField alloc]initWithFrame:[frame]];
//在此处添加单元格的自定义设置。
返回[结果自动释放];
}
此函数将被调用并遍历表中的每个单元格。
希望有此帮助。您能提供一个代码示例吗?
readwrite
属性设置为默认值,您应该忽略此属性。此外,您应该删除@界面中的IVAR。。。{//ivars here}
因为Xcode会自动创建ivar并合成属性。您可以像这样直接访问IVAR:\u name
、\u attribute
、\u level
等。下划线\u
而不是self.
。
- (NSView *)tableView:(NSTableView *)tableView
viewForTableColumn:(NSTableColumn *)tableColumn
row:(NSInteger)row
{
NSTextField *result = [[NSTextField alloc] initWithFrame:[<your tableview> frame]];
// Add your custom for the cell in here.
return [result autorelease];
}