繁体   English   中英

OSX:无法识别带有标签的NSButton

[英]OSX: NSButton with tag is not recognized

我在NSTableView的单元格内部有一个NSButton,我想为其分配一个动作和一个具有索引的标签,所以我这样做了:

NSTableCellView *cellView = [tableView makeViewWithIdentifier:tableColumn.identifier owner:self];

- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
    if( [tableColumn.identifier isEqualToString:@"check"] )
    {
        NSButton *button = (NSButton*)[cellView viewWithTag:100];

        if (button == nil)
            NSLog(@"button is null");
        [button setTag:row];
        [button setAction:@selector(SelectRow:)];
    }

}

- (IBAction)SelectRow:(id)sender{

    NSInteger index = [sender tag];

    NSLog(@"index:%lu", index);
}

您可以看到我有一个以tag = 100开头的NSButton:我在xib文件中设置了它,并更改了它的行值。 但是我有一个nil按钮,因为它输入了条件。 在IOS中可以正常工作,但在OSX中则不能...为什么?

如果您只需要标签来获取正确的行索引,那么我可能会为您提供另一种解决方案。 我还需要找出一个按钮按下的视图。 我没有使用标签,而是向表视图询问按钮超级视图的索引。 对我来说,这是更好的方法,因为细胞顺序发生了变化。

- (IBAction)selectRow:(NSButton *)sender {
     NSInteger row = [_tableView rowForView:sender.superview];
     NSLog(@"index:%lu", index);
}

希望我能为您服务!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM