[Cocoa]_[初级]_[根据所要显示的内容,动态创建NSTextField(Label),并在一个NSView内显示]

来源:互联网 发布:网络管理工程师培训 编辑:程序博客网 时间:2024/06/05 20:31
其中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;}

0 0