我有一个单栏NSTableView,填充NSTableViewDataSource方法(不涉及任何绑定)。NSTableView是在NSScrollView内,当您从Interface Builder中的库中拖入一个NSTableView时,NSTableView是默认行为。 tableview的内容基于用户键入的搜索字符串填充,并且在该点之后不会更改。NSTableView跳转选择...为什么?
我只实现数据源协议的这两种方法:
- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView;
- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row;
输入我的搜索字符串后,焦点仍然是在的NSTextField,但我可以自然地滚动tableview中与我的鼠标滚轮或用滚动条上的箭头。都不会导致tableview接收对焦环。但是,如果向下滚动以使我不在tableview的顶部,然后单击以突出显示tableview中的单个行,则tableview会跳回到顶部,然后选择该位置的鼠标下面的任何行。如果在点之后点击行,它将按预期工作。
换句话说,如果NSTableView有围绕它的聚焦环,点击一行就会突出显示预期的行。如果它没有围绕它的聚焦环,点击一行可以在滚动到顶部之后选择该位置的任何行。
任何见解?我运行的是雪豹,但我相信这也发生在我运行豹时。
哦......你说的没错!我将文本字段设置为“发送结束编辑”而不是“仅限发送”。因此,当我点击tableview时,它再次运行搜索。如果我在点击tableview之前选中“搜索”按钮,它按预期工作。 谢谢! – 2010-08-18 13:54:18