0

我已将 NSSwitchCells 列绑定到 NSArrayController。值 ON/OFF 正确显示,但是当我单击它时,值不会改变。开关框提供点击的视觉反馈,但值保持不变(选中或未选中)。

在此处输入图像描述

我已经尝试了各种绑定选项。

 NSDictionary *bindingOptions = [NSDictionary dictionaryWithObjectsAndKeys:
                                                [NSNumber numberWithInteger:1], NSContinuouslyUpdatesValueBindingOption, 
                                                [NSNumber numberWithInteger:1], NSRaisesForNotApplicableKeysBindingOption,
                                                [NSNumber numberWithInteger:1], NSConditionallySetsEditableBindingOption,
                                                [NSNumber numberWithInteger:1], NSValidatesImmediatelyBindingOption,

                                                nil];
                [tableColumn bind:@"value" toObject:currentItemsArrayController withKeyPath:[NSString stringWithFormat:@"arrangedObjects.%@", editedColumnmetadata.columnBindingKeyPath] options:bindingOptions];   

[(NSButtonCell*)cell setButtonType:NSSwitchButton];
                [cell setTitle:@""];
                [tableColumn setDataCell:cell];

谢谢

更新:(绑定到单元格?)

 //[tableColumn bind:@"value" toObject:currentItemsArrayController withKeyPath:[NSString stringWithFormat:@"arrangedObjects.%@", editedColumnmetadata.columnBindingKeyPath] options:bindingOptions];
 [cell bind:@"objectValue" toObject:currentItemsArrayController withKeyPath:[NSString stringWithFormat:@"arrangedObjects.%@", editedColumnmetadata.columnBindingKeyPath] options:bindingOptions];
4

1 回答 1

0

您必须按照以下步骤操作,如果您需要更多详细信息,请告诉我:-

首先,您必须将复选框单元格列绑定到绑定检查器内的 arraycontroller,如下面的屏幕截图所示。

在此处输入图像描述

如果要更新复选框单元格的值,请在数组控制器中进行第二件事,然后在操作方法下方编写此操作方法,并将此操作方法仅连接到复选框单元格的表格列。

-(IBAction)clickChekBoxcell:(id)sender
{
    NSInteger chkCell=[sender integerValue];
    NSNumber *num=[NSNumber numberWithInteger:chkCell];
    NSMutableDictionary *dict=[NSMutableDictionary dictionary];
    for(dict in [arrCont arrangedObjects])
    {
        [dict setObject:num forKey:@"checkYesNo"];
    }
    [arrCont rearrangeObjects];
}
于 2013-10-07T10:37:36.273 回答