不使用矩阵我如何设置按钮的状态?!它曾经很容易用矩阵但现在在10.8和矩阵的折旧我不知道如何在窗口加载时设置单选按钮的状态。
这里我查看是否将变量(p.status)设置为“Pending”,如果是,我想要单选按钮(在IB中链接到“pending”)将其状态设置为“1”< / p>
让我疯了!!!
在我的.h
IBOutlet NSButton *pending;
在我的.m
if([p.status isEqualToString:@"Pending"]){
//pending.state = 1; Doesn't work
//[NSButtonCell:pending [setstate:NSOnState]]; Doesn't work
//[(NSButtonCell *)pending.cell setstate(ON)]; Doesn't work
}
答案 0 :(得分:0)
这是适用于我的解决方案。我为IB中的每个单选按钮创建了唯一标识符&gt; Identity Inspector(“pendingButton”approvedButton“rejectedButton”)从单选按钮中移除了绑定到头文件中的IBOutlet NSButton。并实现了这段代码:
- (NSView *)tableView:(NSTableView *)table_view viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
Proposal *p = [list objectAtIndex:row];
NSString *identifier = [tableColumn identifier];
NSString *holdingValue;
NSTableCellView *cell = [table_view makeViewWithIdentifier:identifier owner:self];
if([identifier isEqualToString:@"status"]){
if(p){
for (NSView *subview in cell.subviews) {
if (![subview isKindOfClass:[NSButton class]]) continue;
if ([subview.identifier isEqualToString:@"pendingButton"])
[(NSButton *)subview setState:[p.status isEqualToString: @"Pending"] ? NSOnState : NSOffState];
else if ([subview.identifier isEqualToString:@"approvedButton"])
[(NSButton *)subview setState:[p.status isEqualToString: @"Approved"] ? NSOnState : NSOffState];
else if ([subview.identifier isEqualToString:@"rejectedButton"])
[(NSButton *)subview setState:[p.status isEqualToString: @"Rejected"] ? NSOnState : NSOffState];
}
}
}else if ([identifier isEqualToString:@"clientAccessPoint"]){
holdingValue = [p valueForKey:identifier];
if (!holdingValue){
cell.textField.stringValue = @"N/A";
}else{
cell.textField.stringValue = [p valueForKey:identifier];
}
}else{
cell.textField.stringValue = [p valueForKey:identifier];
}
return cell;
}