Как наборы инструментов GUI различают одиночный и двойной щелчок - PullRequest
1 голос
/ 22 февраля 2011

Как вы можете видеть в моем предыдущем вопросе , в настоящее время я борюсь с событиями одного и двух щелчков - я хотел выполнить действие после щелчка и совершенно другое действие после двойного щелчка. Проблема в том, что события низкого уровня говорят мне только о вещах типа , это была мышь вниз или , это была мышь вверх, и общее количество кликов == 2 . Трудно провести различие между одиночным и двойным щелчком мыши, так как, когда мышь появляется после одного щелчка, мне нужно подождать некоторое время, чтобы убедиться, что нет второго щелчка.

Теперь мне интересно, как разные GUI-инструментарии справляются с этим, поскольку волшебного пути нет. Вы не можете иметь отдельные высокоуровневые события с одним и двумя щелчками мыши, не задерживая событие с одним щелчком или что-то в этом роде, не так ли?

(Похоже, что обычным способом решения этой проблемы является привязка действий, выполняемых одним или двумя щелчками мыши, таких как выделение при первом щелчке и запуск приложения при втором. Таким образом, не имеет значения, что действие по одному щелчку выполнено срабатывает вместе с двойным щелчком мыши. Я прав?)

1 Ответ

2 голосов
/ 22 февраля 2011

Вам всегда нужен какой-то таймер, чтобы различать одиночный и двойной щелчок.Подумайте об этом: вы не можете предсказать, произойдет ли второй щелчок, как только произойдет первый, вам просто нужно подождать и посмотреть.

В iOS у вас могут быть распознаватели жестов.И если вы регистрируете только одно распознавание касаний, оно срабатывает сразу, но как только вы регистрируете распознавание двойного касания, вы замечаете, что одно касание не срабатывает сразу, но только после заметной задержки.Сделал так, чтобы я переключился на одно касание двумя пальцами в одном приложении, потому что задержка действительно раздражает.

Вы можете обойти задержку, если ваше действие одним нажатием отменяется или отменяется: выполните действие, когда число кликов ==1, и если число кликов == 2, отменить действие одного клика.Однако может привести к нежелательному / неожиданному поведению пользовательского интерфейса (с точки зрения пользователя).

...