其中IBOutlet NSView *showContentsView;要进行绑定连接。
-(void)doShowContactsContents:(id) data
{
MqjTableData *td = data;
NSMutableArray *deleteArray =[[NSMutableArray alloc] initWithArray:[showContentsView subviews]];
[deleteArray makeObjectsPerformSelector:@selector(removeFromSuperview)];
[deleteArray release];
NSUInteger i = 1;
if (![[td name] isEqualToString:@""])
{
NSTextField *staticField =[self appendTextField:i];
[staticField setStringValue:[NSString stringWithFormat:@"Name: %@",td.name]];
++i;
}
if (![[td number] isEqualToString:@""])
{
NSTextField *staticField =[self appendTextField:i];
[staticField setStringValue:[NSString stringWithFormat:@"Number: %@",td.number]];
++i;
}
if (![[td qqNumber] isEqualToString:@""])
{
NSTextField *staticField =[self appendTextField:i];
[staticField setStringValue:[NSString stringWithFormat:@"QQ: %@",td.qqNumber]];
++i;
}
if (![[td emailNumber] isEqualToString:@""])
{
NSTextField *staticField =[self appendTextField:i];
[staticField setStringValue:[NSString stringWithFormat:@"E-mail:%@",td.emailNumber]];
++i;
}
[showContentsView setNeedsDisplay:YES];
}
-(NSTextField*) appendTextField:(NSUInteger) item
{
NSTextField *field =[NSTextField new];
[field setFrame:NSMakeRect(10, showContentsView.frame.size.height-25*item, 200, 20)];//坐标从上到下
[field setTextColor:[NSColor controlTextColor]];
[field setBackgroundColor:[NSColor controlColor]];
[field setBordered:NO];
[field setEditable:NO];//控制是标签还是编辑框
[showContentsView addSubview:field];
return field;
}
[Cocoa]_[初级]_[根据所要显示的内容,动态创建NSTextField(Label),并在一个NSView内显示]
最新推荐文章于 2023-05-11 13:28:54 发布
这篇博客介绍了如何在Objective-C的Cocoa环境中,根据数据内容动态创建NSTextField(Label)并显示在NSView内。通过删除已有子视图,然后根据数据项创建新的静态文本字段,并设置相应的文字内容,最后更新NSView的显示状态来实现内容的动态更新。

1152

被折叠的 条评论
为什么被折叠?



