我正在使用NSMatrix作为键盘并致电:
[selectedCell setEnabled:NO];
[selectedCell setTransparent:YES];
选择键时(防止再次执行相同的操作)。但是,我还想选择在完成后“翻转”整个选项 - 也就是说,替换所有已删除的单元格并隐藏剩余的(未选中)单元格
是否可以循环遍历矩阵的所有单元格并使用以下内容检查其启用/透明状态:
if([selectedCell isEnabled] == NO)
NSLog(@"the cell is disabled");
if([selectedCell isTransparent] == YES)
NSLog(@"the cell is transparent");
上面的代码当然不起作用,但你明白了......我是一个相对新手,所以任何帮助都会非常感激。谢谢: - )
答案 0 :(得分:1)
NSMatrix可让您获得the number of columns和the number of rows以及the cell at a specific row and column。所以,在几个for
循环中执行此操作。
通过标记可以工作,但要求您为每个单元格提供自己的标记,并且(在您显示的示例中)所有标记都在一个系列中。任何奇数输出,重复标记或未标记的单元格都会导致问题。
答案 1 :(得分:1)
我使用NSNumber
存储无线电组的选定索引(在Interface Builder中处理为NSMatrix
)。为了实现这一点,我合成了一个成员变量,我为其设置了无线电组的“选择索引”绑定。
@interface MyClass {
NSNumber* m_selectedIndex;
}
@property (readwrite, assign) NSNumber* selectedIndex;
此外,我添加了一个枚举,使值可读。
typedef enum { APPLE = 0, PLUM = 1 } SELECTION_STATE;
答案 2 :(得分:0)
UPDATE !! 好的伙计们,我用以下方法解决了这个问题:
for(key=1; key <= 16; key++)
if([[numericKeypad cellWithTag:key] isTransparent] == YES)
// ...or alternatively...
// if([[numericKeypad cellWithTag:key] isEnabled:NO])
{
[[numericKeypad cellWithTag:key] setTransparent:NO];
[[numericKeypad cellWithTag:key] setEnabled:YES];
}
else
{
//...disable it...
}
似乎我一直非常接近,但由于缺乏经验,我努力寻找合适的语法一整天。非常感谢:-)