gpt4 book ai didi

objective-c - 如何检查在 cocoa 中以编程方式创建的 NSCheckbox 的状态

转载 作者:搜寻专家 更新时间:2023-10-30 19:54:02 24 4
gpt4 key购买 nike

我动态创建了多个复选框,现在我想检查它们的状态,但我不知道该怎么做。这是我创建多个 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:(id)sender
{
if ([DeleteCheckbox state] == NSOnState) {

NSLog(@"selected");
}
else {

NSLog(@"not selected");

}
}

但是运行时总是打印f: "not selected"。

最佳答案

您必须检查 发送按钮 的状态,而不是实例变量 DeleteCheckbox 的状态(它已被释放并且未指向有效按钮):

-(IBAction)checkState:(NSButton *)sender
{
if ([sender state] == NSOnState) {
NSLog(@"selected");
}
else {
NSLog(@"not selected");
}
}

关于objective-c - 如何检查在 cocoa 中以编程方式创建的 NSCheckbox 的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18120019/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com