2016-10-09 2 views
1

У меня есть приложение, в котором требуется быстрое нажатие на различные кнопки, но Cocoa, кажется, запрещает его.Нажатие на другие NSButtons в быстрой последовательности

Я использую тот же подкласс NSButton для всех экземпляров кнопок, и действия вызова событий mouseUp/mouseDown основаны на теге экземпляра кнопки (определенном в IB).

Проблема заключается в том, что нажатие различных кнопок быстро вызывает щелчок на первой кнопке, но не на нажатие текущей кнопки. Как это исправить?

Примечание: Я использую Swift 3 и настроен на последний macOS.

+0

Это действительно может быть ошибка _macOS Sierra_. Подобное происходит при выборе вкладок в Chrome в быстрой последовательности (с помощью мыши) ... Может ли кто-нибудь подтвердить? – rthor

+0

Это работало нормально на более ранних ОС? Можно ли изолировать проблему в минимальном тестовом проекте? Являются ли кнопки перекрывающимися или касающимися друг друга? – Willeke

+0

Да, это так. Выяснилось, что это произошло из-за неисправного драйвера планшета, неправильно зарегистрировавшего двойные клики. – rthor

ответ

0

Это, оказалось, было ошибкой с драйвером планшета Wacom на macOS Sierra. Драйвер из предыдущей версии ОС устарел и неправильно регистрировал двойные клики. Если кто-либо сталкивается с этой проблемой, обязательно проверьте свою систему по умолчанию для скорости двойного щелчка.

Этот фрагмент кода выводит скорость двойного щелчка:

Swift.print(NSEvent.doubleClickInterval()) 
Смежные вопросы