我有一个NSTableView与三个单选按钮列。我在IB中创建了它们,并将它们全部绑定到相同的操作,但我不知道如何检索哪个无线电被检查以调用适当的操作。这是我过去的做法,但是,再一次,不再。
-(void) selectedAction:(id) sender{
NSInteger col = [sender selectedColumn];
if(col==0){
proposal.status = @"Pending";
}else if(col==1){
proposal.status = @"Approved";
}else if(col==2){
proposal.status = @"Rejected";
}
[[DBManager getProposalTable] updateWithProposal:proposal];
}
我曾经能够用矩阵创建单选按钮,并轻松设置按钮的状态和检索被检查的比率。随着黑客帝国的贬值,我真的不知道该怎么做了。
if(p){
if([proposal.status isEqualToString:@"Pending"]){
[matrix selectCell:[cells objectAtIndex:0]];
}else if([proposal.status isEqualToString:@"Approved"]){
[matrix selectCell:[cells objectAtIndex:1]];
}else if([proposal.status isEqualToString:@"Rejected"]){
[matrix selectCell:[cells objectAtIndex:2]];
}
}
就像我说的,这些无线电存在于NSTableView中,并基于DB中的值以编程方式设置。当选中一个时,数据库中的值就会更新。
关于如何设置单选按钮的状态以及如何检索哪个被选中的任何建议将不胜感激。
我是这样识别哪个按钮被点击的:
- (IBAction)selectedAction:(id)sender{
NSInteger selected = [self->tableView rowForView:sender];
NSString *row = list[selected];
Proposal *p = list [selected];
NSString *button = [sender title];
if([button isEqualToString:@"Pending"]){
p.status = @"Pending";
}else if([button isEqualToString:@"Approved"]){
p.status = @"Approved";
}else if([button isEqualToString:@"Rejected"]){
p.status = @"Rejected";
}
[[DBManager getProposalTable] updateWithProposal:p];
}
我还没有能够设置按钮状态虽然:(