如何设置按钮的标题?

时间:2014-01-07 00:15:35

标签: objective-c macos cocoa

我想做一个简单的Circle and Cross游戏。我定义了9个按钮并尝试连接到一个插座:

@property (weak) IBOutlet NSButton *buttons;

现在我随机选择一个从1到9的数字,这是计算机移动,我想通过方法设置按钮的标题:

[_buttons setTitle:@"o"];
[_buttons setTitle:@"x"];

我认为连接问题。我只能将一个按钮连接到一个插座,而不是多个。

我可以按标签指定按钮并将9个按钮连接到一个插座吗?

我应该使用Collection View Item吗?我怎么能这样做?

我的第二个想法是为每个按钮定义9个插座,但我想避免它。

1 个答案:

答案 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"];
    }
}