我想做一个简单的Circle and Cross游戏。我定义了9个按钮并尝试连接到一个插座:
@property (weak) IBOutlet NSButton *buttons;
现在我随机选择一个从1到9的数字,这是计算机移动,我想通过方法设置按钮的标题:
[_buttons setTitle:@"o"];
[_buttons setTitle:@"x"];
我认为连接问题。我只能将一个按钮连接到一个插座,而不是多个。
我可以按标签指定按钮并将9个按钮连接到一个插座吗?
我应该使用Collection View Item吗?我怎么能这样做?
我的第二个想法是为每个按钮定义9个插座,但我想避免它。
答案 0 :(得分:2)
您可以使用包含按钮的NSMatrix
。在Interface Builder中,放入一个单选按钮组,然后将单元格的样式从Radio更改为Push。然后你可以有一个矩阵的出口。要更改一个按钮的标题,您可以执行类似
[[_buttons cellAtRow: 0 column: 2] setTitle: @"x"];
(添加了:)
如果您想更改标题以响应点击次数,请将NSMatrix
挂钩到这样的操作方法:
- (IBAction) pushed:(id)sender
{
NSMatrix* matrix = (NSMatrix*) sender;
if ([matrix isKindOfClass: [NSMatrix class]]) // paranoia
{
NSButtonCell* hitCell = [matrix selectedCell];
[hitCell setTitle: @"x"];
}
}