그래서 나는 많은 실험을 통해이 문제를 해결할 수있었습니다.
설정 NSTableView는 :
override func awakeFromNib() {
super.awakeFromNib()
registerNotifications()
}
deinit {
unregisterNotifications()
}
private func registerNotifications() {
NotificationCenter.default.addObserver(self,
selector: #selector(selectionIsChanging),
name: NSNotification.Name.NSTableViewSelectionIsChanging,
object: nil)
}
private func unregisterNotifications() {
NotificationCenter.default.removeObserver(self)
}
@objc private func selectionIsChanging() {
if let row = superview as? NSTableRowView, row.isSelected == true {
self.backgroundColor = NSColor.alternateSelectedControlColor
} else {
self.backgroundColor = NSColor.clear
}
}
:
NSTableCellView 서브 클래스에
tableView.refusesFirstResponder = true
tableView.selectionHighlightStyle = .none
는 다음과 같은 코드를 구현 여기 내 솔루션입니다