gpt4 book ai didi

cocoa - NSOutlineView 的 SelectedRow 总是返回 -1

转载 作者:行者123 更新时间:2023-12-03 16:57:11 25 4
gpt4 key购买 nike

我有一个基于 View 的 NSOutlineView,并且在类中有一个选择更改事件:

- (void)outlineViewSelectionDidChange:(NSNotification *)notification
{
NSLog(@"Selected Row inside:%ld",[self selectedRow]);
}

这是我创建 NSOutlineView 的方式:

ovc = [[OutlineViewController alloc] init];
[myOutlineView setDelegate:(id<NSOutlineViewDelegate>)ovc];
[myOutlineView setDataSource:(id<NSOutlineViewDataSource>)ovc];

MyOutlineView 在 IB 中创建。
每次我单击一行时,都会触发该事件,但结果始终为 -1。

NSLog(@"Item 0:%@",[self viewAtColumn:1 row:0 makeIfNecessary:YES]);

始终返回 NULL。

有什么具体的事情我应该做吗?谢谢。

===编辑===
我已经发布了显示该问题的简化代码:http://www.petits-suisses.ch/OutlineView.zip

最佳答案

而不是检查 self 对象的 selectedRow,它只是在 AppController 中初始化的一个对象,这是一个错误的实例。您需要检查通知对象,如下所示。

NSLog(@"Selected Row:%ld",[[notification object] selectedRow]);

此外,clickedRow 在目标执行操作时也有意义。因此,如果在 Action 或 DoubleAction 方法内进行检查,clickedRow 会给出正确的值。

关于cocoa - NSOutlineView 的 SelectedRow 总是返回 -1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28331864/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com