objective-c - 如何将动态创建的 NSCheckbox 标签添加到 Cocoa 中的数组中

标签 objective-c macos cocoa

我创建了多个动态复选框并为其设置标签,现在我想检查它是否选中,将其标签添加到 NSArray。 这是我创建多个 NSCheckbox 的代码:

for(int i = 1; i <= number; i++)
{
    DeleteCheckbox = [[NSButton alloc] initWithFrame:NSMakeRect (20,textfield_Y,50,25)];
    [DeleteCheckbox setButtonType:NSSwitchButton];
    [DeleteCheckbox setBezelStyle:0];
    [DeleteCheckbox setTitle:@""];
    [DeleteCheckbox setTag:200+i];
    [DeleteCheckbox setState:NSOffState];
    [DeleteCheckbox setAction:@selector(checkState:)];
    [guiView addSubview:DeleteCheckbox];
    [DeleteCheckbox release];
}

我使用了这段代码,但它将所有内容添加到数组中:

-(IBAction)checkState:(NSButton *)sender
{
    if ([sender state] == NSOnState) {
        NSLog(@"selected");
        for (int i = 1; i <= number; i ++) {
            [deleteSelectedArray addObject: [[guiView viewWithTag:200+i] intValue]];

        }
        NSLog(@"deleteSelectedArray : %@",deleteSelectedArray);

    }
    else {
        NSLog(@"not selected");
    }
}

我怎样才能做到这一点?

最佳答案

- (IBAction) checkState: (NSButton*) sender {
    for (int i = 1; i <= number; i ++) {
        if ([[guiView viewWithTag: 200 + i] state] == NSOnState) {
            [deleteSelectedArray addObject: [[guiView viewWithTag: 200 + i] intValue]];
        }
    }
}

关于objective-c - 如何将动态创建的 NSCheckbox 标签添加到 Cocoa 中的数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18120748/

相关文章:

c++ - 混合 Objective C ,(*.m , *.mm & .c/.cpp ) 文件

iphone - #if TARGET_OS_IPHONE 与 iPhone 和 iPad

python - os.path.join() 是如何工作的?

cocoa - 带有 .Trash 文件夹的 NSMetadataQuery 没有结果

objective-c - 在 NSView 上使用 NSPoint 鼠标跟踪

iphone - 在 View 中添加弹出窗口

iphone - 在 iOS 应用程序中获取手机信号塔信息?

macos - MAC OSX, Beyond compare 作为 Perforce 的合并工具

mysql - MySQL默认将.sql文件存储在哪里?

objective-c - 如何有条件地使用新的 Cocoa API