【问题标题】:Get value of NSTextfield by tag number in Cocoa通过Cocoa中的标签号获取NSTextfield的值
【发布时间】:2013-07-27 16:10:43
【问题描述】:

我有一个问题:如果我想通过标签号获取 NSTextField 的值,我该怎么办?

我动态创建 NSTextField 并通过此代码为其设置标签:

for(int i=0; i<number;i++)
{
    NSTextField *ssid = [[NSTextField alloc] initWithFrame:NSMakeRect (10,label_Y,150,25)];
    [ssid setStringValue:[NSString stringWithFormat:@"SSID %d :",i +1]];
    [ssid setSelectable:NO];
    ssid.tag = i;
    [ssid setEditable:NO];
    [ssid setBordered:NO];
    [ssid setDrawsBackground:NO];
    [ssid setAutoresizingMask:NSViewWidthSizable];
    [contentView addSubview:ssid];
    label_Y -=30;
    [ssid release];

   NSTextField *ssid2 = [[NSTextField alloc] initWithFrame:NSMakeRect (10,label_Y,150,25)];
    [ssid2 setStringValue:[NSString stringWithFormat:@"SSID %d :",i +1]];
    [ssid2 setSelectable:NO];
    ssid2.tag = i;
    [ssid2 setEditable:NO];
    [ssid2 setBordered:NO];
    [ssid2 setDrawsBackground:NO];
    [ssid2 setAutoresizingMask:NSViewWidthSizable];
    [contentView addSubview:ssid2];
    label_Y -=30;
    [ssid2 release];

}

然后我想获取每个 NSTextField 的值但我不知道如何通过标签号获取 NStextfield 的值?谢谢

【问题讨论】:

    标签: objective-c macos cocoa-touch nstextfield


    【解决方案1】:

    假设标签是 7。

    [contentView viewWithTag:7]
    

    如果子视图(包括视图本身,在这种情况下为contentView)具有此标签,则返回标签,如果没有找到则返回 nil。您负责确保标签的唯一性。为此,您永远不应该使用 0 作为标签值,因为 0 是默认值 [contentView viewWithTag:0] 将返回 contentView,除非您将其标签设置为其他值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-30
      • 1970-01-01
      • 1970-01-01
      • 2012-11-11
      • 1970-01-01
      • 2012-03-03
      • 1970-01-01
      相关资源
      最近更新 更多