[英]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.