selectedRow返回null

时间:2013-01-06 13:11:20

标签: objective-c cocoa nstableview

我在窗口上有一个NSTableView,使用NSMutableArray填充数据,这是好的

选择行后,当我签入代码

[myTableView selectedRow];

[myTableView clickedRow];

都返回null

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

selectedRowclickedRow均返回NSInteger,而不是对象。他们返回0,这是第一行的索引。

如果您打印0就好像它是一个对象(例如,NSLog(@"%@", [myTableView selectedRow])),它将打印为nil,因为那是nil的原因:{ {1}}作为对象指针。


当然,这假设0实际上首先引用了表格视图。如果myTableView尚未指向表格视图(即myTableView变量本身包含myTableView),则向其发送的任何消息将依次返回nil(再次,如果将其视为对象,则看起来像0

如果nil在未选择第一行或没有行时返回selectedRow,或者0在未点击第一行时返回clickedRow ,确保0指向您期望的位置。

(我故意将这个问题及其解决方案的更具体的解释留给你,Jaggu,因为你在评论中说过你已经发现它了。)