gpt4 book ai didi

calayer - 导入 SwiftUI 时如何使 NSView 符合 CALayerDelegate?

转载 作者:行者123 更新时间:2023-12-03 20:27:19 26 4
gpt4 key购买 nike

这编译:

import AppKit

class CustomView: NSView, CALayerDelegate {
func layoutSublayers(of layer: CALayer) {}
}

然而,这不是:
import AppKit
import SwiftUI

class CustomView: NSView, CALayerDelegate {
func layoutSublayers(of layer: CALayer) {}
}

这是一个错误:
... error: redundant conformance of 'CustomView' to protocol 'CALayerDelegate'
class CustomView: NSView, CALayerDelegate {}
^
... note: 'CustomView' inherits conformance to protocol 'CALayerDelegate' from superclass here
class CustomView: NSView, CALayerDelegate {}
^

知道如何解决这个问题吗?

如果您删除 CALayerDelegate一致性,不调用委托(delegate)方法。

最佳答案

没有调用它们是因为编译器看不到它们正在实现协议(protocol),因此不会让它们在 Objective-C 中可用。但是您仍然可以使用 @objc 手动使其可用。属性。您还应该指定 Objective-C 选择器名称,它并不总是与 Swift 中的名称相同:

import AppKit
import SwiftUI

class CustomView: NSView {
@objc(layoutSublayersOfLayer:)
func layoutSublayers(of layer: CALayer) {}
}

关于calayer - 导入 SwiftUI 时如何使 NSView 符合 CALayerDelegate?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58461756/

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