我试图显示一个NSPopover
以及NSTableView
的选定行的附加信息。为此,我需要去选择行的视图呈现中的基准,所以我可以“附加”我酥料饼吧:NSTableView rowViewAtRow:总是返回零
NSInteger row = [[self membersTableView] selectedRow];
NSTableRowView *aView = [[self membersTableView] rowViewAtRow: row makeIfNecessary: YES];
[self setQuickLookPopoverController: [QuickLookPopoverController showPopoverFor: anObject at: aView]];
在上述情况中,aView
结果始终为零。根据Apple documentation,这是获取视图对象的方法,给定一个选定的行。特别是在讨论的最后一句话是有点不可思议:
讨论此方法将首先尝试返回当前 于可视区域内显示的视图。如果没有可见视图,并且makeIfNecessary为YES,则返回一个准备好的临时视图。如果 makeIfNecessary是NO,并且视图不可见,则返回nil 。
一般来说,makeIfNecessary应该是YES,如果你需要产生 视图,NO,如果你只是想更新视图属性只有 它是可用(通常这意味着它是可见的)。
如果row不在numberOfRows中,则会引发异常。返回的结果通常不应超过当前运行循环周期的时间。这是更好地拨打 rowViewAtRow:makeIfNecessary:每当需要的视图..
为什么这个方法总是返回零?