Когда я нажимаю и удаляю сообщение, как Mail.app решает, что выбрать дальше?

В Mail.app (8.2 на Yosemite 10.10.3), когда я щелкаю сообщение в списке (предварительный просмотр справа) и удаляю его (с помощью клавиатуры или мыши), кажется совершенно случайным, будет ли Mail перемещать выбор к сообщению над тем, которое я только что удалил:

подниматься

или тот, что ниже:

спускаться

Это часто приводит к тому, что я удаляю кучу сообщений, которые я не хотел, когда я щелкаю верхнюю часть списка, например, уведомлений о сборке, и несколько раз нажимаю «Удалить», ожидая, что он будет работать вниз по этому списку, но вместо этого он перемещается вверх.

Я пробовал разные вещи - например, я думал, что это коррелирует с моей последней навигацией по клавиатуре в списке - если я нажму стрелку вверх, затем щелкну почту, а затем нажму "Удалить", она переместится вверх, но это не всегда так. .

У кого-нибудь есть объяснение и, желательно, решение?

РЕДАКТИРОВАТЬ: вот видео, как это происходит. Я начинаю последовательность, нажимая стрелку вверх и нажимая «Удалить», затем несколько раз нажимаю «Удалить», и в конце видео выделение меняет направление: http://youtu.be/hKq7qA3UgaM

В вашем видео, где меняется направление, похоже, что использовалась клавиша со стрелкой, а не кнопка мыши. Это невозможно увидеть, потому что курсор находится на том же элементе, который был бы выбран клавишей со стрелкой. Но поскольку только клавиши со стрелками меняют направление, это единственное логическое объяснение, которое у меня есть.
@jazZRo извиняюсь за повторное сообщение, но хотел исправить опечатку - это может выглядеть так, но это не так - я реэкспортировал видео с выделенным щелчком мыши, чтобы уточнить: youtu.be/TcyTLJMG06o . Это выглядит как нажатие клавиши, потому что я не двигал мышь между щелчками, но уверяю вас, что это был щелчок мыши.
поскольку ваше видео может вводить в заблуждение, я использовал флаги, чтобы было ясно, что оно удаляет в последнем направлении прокрутки.
@Buscar웃SD спасибо за идею использования флагов. Я сделал еще одно видео, которое, я надеюсь, сделает его более понятным. Обратите внимание, что после удаления первого серого сообщения я больше не использую клавиши со стрелками - только щелчки мышью и удаление. Первые два удаления перемещаются вверх, а последнее перемещается вниз к красному флагу. youtu.be/hKq7qA3UgaM

Ответы (3)

Когда вы щелкаете кнопкой мыши по элементу непосредственно над или под текущим выбранным, Mail ведет себя так же, как и со стрелками вниз и вверх на клавиатуре.

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

Да, верно, это самое следующее электронное письмо. Из-за вашего вопроса мне стало любопытно, и я проверил его, и я не видел никаких исключений из этого.
Похоже, вы попали в точку! Точно так же (и это реальная проблема, с которой я столкнулся), если я удалю несколько сообщений (работая вниз, как это сделал бы любой здравомыслящий человек), затем щелкните сообщение выше и нажмите «Удалить», оно начнет «работать» вверх, что ужасное поведение ИМХО . Вряд ли можно как-то изменить поведение в Mail, так что, думаю, мне просто нужно научиться думать, прежде чем удалять несколько сообщений. Думаю, это один из тех случаев, когда Apple пытается быть слишком умной и не дает пользователю возможности обезличить его...
Приложение просто проверяет, было ли выбрано следующее или предыдущее письмо, не проверяя, было ли это сделано с помощью мыши или клавиатуры. Похоже на работу ленивого программиста, если вы спросите меня ;-)
:) это всегда возможно ... Но я думаю, что вся эта штука с запоминанием направления - это плохой UX - это список элементов, и стандартное поведение при удалении элемента в списке - это элементы ниже, чтобы переместиться вверх заполнить пустое место. Пользователи будут ожидать этого. Кроме того, в пользовательском интерфейсе нет указания направления работы, и оно сохраняется до тех пор, пока вы не закроете приложение. Так что, если вы придете сегодня ко мне на почту, нажмите на письмо (которое не находится рядом с текущим!) и дважды нажмите «Удалить», какое письмо будет удалено, зависит от направления, в котором я последний раз работал вчера! И у меня нет другого способа узнать, кроме как подождать и посмотреть.

Если вы хотите, чтобы почта игнорировала порядок сортировки и всегда переходила к «следующему» сообщению, вы можете запустить следующую команду в терминале:

defaults write com.apple.mail IgnoreSortOrderWhenSelectingAfterDelete 1

Очень интересно - не знал о такой настройке. Однако в этом случае поведение не меняется - может быть, это относится только к «классическому» макету или чему-то еще. Но когда я запускаю это и перезапускаю Mail.app, выбор по-прежнему перемещается в том направлении, в котором я двигался до нажатия кнопки «Удалить». Спасибо за информацию в любом случае.

Я обнаружил эту настройку:

defaults read com.apple.mail MessageListNextMessageDirection

который переключается между значениями 1 и 2, когда я использую клавиши вверх или вниз в Mail. Есть ли способ «заблокировать» такой параметр по умолчанию и предотвратить его изменение приложением?

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