我試圖顯示一個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:每當需要的視圖..
爲什麼這個方法總是返回零?