gpt4 book ai didi

cocoa - 与 NSBrowser 相比,NSBrowserTableView 是什么?

转载 作者:行者123 更新时间:2023-12-03 16:33:50 24 4
gpt4 key购买 nike

我正在实现一个 -(void)delete: 方法,这样我就可以在我的 Cocoa 应用程序中处理删除键。我希望它根据所选内容执行不同的操作:对于文本字段,我想要默认行为(删除左侧的字符),但对于 NSBrowser 项目,我希望它删除该项目。

我想我应该向窗口询问它的第一响应者,然后查看该第一响应者是否等于我的 NSBrowser 的指针,但它从未匹配。当我调试它时,我发现firstResponder指向NSBrowserTableView的实例,但我在文档中找不到它。

这是什么?

我还能如何测试我的firstResponder是否是特定的tableView? (我想过对 NSBrowser 进行子类化,但我倾向于避免子类化,我的第二个想法是添加一个标签,但我最喜欢我的第一个方法,只要当浏览器中的一个项目是已选择。)

想法?

最佳答案

实际上,@trudyscousin 仅部分正确。这个类绝对不是 NSBrowser 的子类。

NSBrowserTableView 是 NSTableView 的私有(private)子类由 NSBrowser 使用显示每一列。使用表格 View ,因此有一个单独的位置来绘制分支图像(文件夹旁边绘制的小箭头),同时保留行的其余部分由默认或用户定义的单元格绘制。

如果你仔细想想, TableView (而不是浏览器)成为第一响应者实际上是有道理的,因为这样事件列的表就会首先响应击键,而 NSBrowser 可以让 NSTableView 做它已经知道如何做。 (例如,跳转到与用户键入的字母匹配的第一行。)

幸运的是,NSBrowserTableView 有一个指向它所适用的浏览器的指针。您可以通过其 -(NSBrowser*)browser 方法访问它。我建议您不要在这种特殊情况下子类化 NSBrowser,因为您必须深入了解其私有(private)实现才能执行任何有用的操作。

关于cocoa - 与 NSBrowser 相比,NSBrowserTableView 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4414795/

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