gpt4 book ai didi

swift - 如何向 NSTableViewDelegate 协议(protocol)添加方法?

转载 作者:搜寻专家 更新时间:2023-11-01 07:17:07 25 4
gpt4 key购买 nike

我想用一些自定义方法扩展 NSTableViewDelegate 协议(protocol)。例如,我希望我的自定义 NSTableView 子类通知代理某些特定事件。是否可以不创建另一个协议(protocol)而是向现有协议(protocol)添加自定义方法?这里最好的方法是什么?

我尝试编写和扩展 NSTableViewDelegate,方法被调用,但在这个扩展中我无法访问委托(delegate)类(我的 NSViewController 的子类) ).这有点破坏了整个想法,因为 Controller 需要以其特定方式响应事件。

那么:如何向 NSTableViewDelegate 协议(protocol)添加方法并在委托(delegate)类中提供实现?

抱歉冗长:)

示例代码(在项目中有点不同,但思路是一样的):

extension NSTableViewDelegate {
func didBecomeFirstResponder(_ tableView: NSTableView) {
isTableViewFirstResponder = true //warning: Use of unresolved identifier 'isTableViewFirstResponder'
}

func didResignFirstResponder(_ tableView: NSTableView) {
isTableViewFirstResponder = false //warning: Use of unresolved identifier 'isTableViewFirstResponder'
}
}

isTableViewFirstResponder 是委托(delegate)类的属性。Swift 就是不知道去哪里找它。如何指定声明 isTableViewFirstResponder 的类?

最佳答案

可以向该协议(protocol)添加方法。但是实现将驻留在扩展中,没有明显的方法可以在符合协议(protocol)的类中实现额外的方法。

关于swift - 如何向 NSTableViewDelegate 协议(protocol)添加方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41546756/

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