У меня есть пользовательский элемент управления.Если он наследуется от NSView
, он автоматически становится первым респондентом, когда я нажимаю на него.Если он наследуется от NSControl
, это не так.Эта разница в поведении сохраняется, даже если я переопределяю mouseDown(with:)
и не вызываю super.
Код:
class MyControl: NSView {
override var canBecomeKeyView: Bool { return true }
override var acceptsFirstResponder: Bool { return true }
override func drawFocusRingMask() { bounds.fill() }
override var focusRingMaskBounds: NSRect { return bounds }
override func draw(_ dirtyRect: NSRect) {
NSColor.white.set()
bounds.fill()
}
}
Как видите, я переопределяю acceptsFirstResponder
среди других методови свойства, связанные с ключевым видом и респондентом.Я также проверил свойство refusesFirstResponder
.Для него установлено значение false.
- В чем причина такой разницы в поведении?
- Существует ли метод или свойство, которое я могу переопределить, чтобы повлиять на него?