【问题标题】:Creating a Cocoa radio button programmatically以编程方式创建 Cocoa 单选按钮
【发布时间】:2020-02-16 14:32:35
【问题描述】:

我需要以编程方式制作一个 Cocoa 单选按钮,谁能解释一下如何做到这一点或如何做好?

【问题讨论】:

    标签: objective-c cocoa radio-button


    【解决方案1】:

    这是一个以编程方式创建单选按钮的示例代码:

    //create the radio button prototype
    NSButtonCell *proto = [[NSButtonCell alloc] init];
    [proto setTitle:@"Options"];
    [proto setButtonType: NSRadioButton];
    
    //define the matrix size where you'll put the radio buttons
    NSRect matrixRect = NSMakeRect(20.0,20.0,125.0,125.0);
    
    //define the matrix specifying that it will contain radio buttons of
    //prototype "proto" defined above, and that it will have 3 radio buttons 
    //arranged on 1 column
    NSMatrix *matrix = [[NSMatrix alloc] initWithRect: matrixRect
                                         mode: NSRadioModeMatrix
                                         prototype: (NSCell *)proto
                                         numberOfRows:3 numberOfColumns:1];
    
    //this assumes that you connected the window object to an outlet
    [[windowOutlet contentView] addSubview: matrix];
    
    //set the radio buttons' titles by getting references to the matrix's cells
    NSArray *cells = [matrix cells];
    [[cells objectAtIndex:0] setTitle:@"Option 1"];
    [[cells objectAtIndex:1] setTitle:@"Option 2"];
    [[cells objectAtIndex:2] setTitle:@"Option 3"];
    
    [proto release];
    [matrix release];
    

    玩得开心!是的,这是取自here,但我添加了一些个人cmets来解释这个过程。

    【讨论】:

    • 非常好,谢谢。为什么矩阵编程指南中没有这段代码?
    【解决方案2】:

    取自here:

    单选按钮实际上是一个矩阵,如果按钮单元格。独家 选择性是矩阵的属性。

    要以编程方式创建按钮单元矩阵,您的操作完全相同 IB 根据您的输入以编程方式执行的操作。例如 创建一个 NSMatrix 实例,将其单元原型设置为 NSButtonCell,设置 矩阵的属性通过其公共方法(相同的 IB 使用),并设置原型按钮单元格和/或所有的属性 包含纽扣电池。

    有关如何以编程方式制作 NSMatrix 的更多示例代码,另请参阅 this link

    【讨论】:

      【解决方案3】:

      The NSButton Class reference is here

      按钮编程主题,特别是 Radio Button(带有示例代码) can be found here

      【讨论】:

        猜你喜欢
        • 2013-07-09
        • 2019-10-23
        • 2010-11-27
        • 1970-01-01
        • 1970-01-01
        • 2019-03-25
        • 1970-01-01
        • 2023-03-25
        相关资源
        最近更新 更多