我想用幾個自定義方法來擴展NSTableViewDelegate
協議。例如,我希望我的自定義NSTableView
子類通知代表某些特定事件。是否有可能不創建另一個協議,而是添加自定義方法到現有的方法?這裏最好的方法是什麼?如何將方法添加到NSTableViewDelegate協議?
我試圖編寫和擴展到NSTableViewDelegate
,並調用方法,但在此擴展中,我無法訪問委託類(我的子類NSViewController
)。這種方式毀了整個想法,因爲控制器需要以特定的方式響應事件。
所以:如何將方法添加到NSTableViewDelegate
協議並在委託類中提供實現?
對不起冗長:)
實施例的代碼(在項目它還是有些不同,但概念是相同的):
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
是委託類的屬性。 斯威夫特只是不知道在哪裏尋找它。我如何指定聲明isTableViewFirstResponder
的類?
'但在這個擴展中,我沒有訪問委託類' - 你能解釋這一點嗎?你究竟想如何訪問它?如果你添加你的代碼會更好。 – user28434
感謝您關注這個問題。添加了一個代碼片段。 –
'NSTableViewDelegate'不知道'isTableViewFirstResponder'。我想你想擴展NSTableView而不是委託。 – shallowThought