Къде отива контролът за изтриване в моя потребителски интерфейс на Cocoa?

Имам приложение Cocoa, което управлява колекция от обекти. Колекцията е представена в NSCollectionView, с бутон „нов обект“ наблизо, така че потребителите да могат да добавят към колекцията. Разбира се, знам, че наличието на бутон „изтриване на обект“ до този бутон би било опасно, защото хората може случайно да го чукнат, когато искат да създадат нещо. Не ми харесва да имам диалози „сигурни ли сте, че искате да...“, така че се отказах от „изтриване на обект“. Има елемент от менюто под Редактиране за премахване на обект и можете да натиснете Cmd-backspace, за да направите същото. Приложението поддържа отмяна на действия за изтриване.

Сега получавам имейли за поддръжка, вариращи от „трябва ли да е толкова трудно да изтриеш неща“ до „защо не мога да изтрия обекти?“. Това предполага, че съм го направил малко твърде трудно, така че каква е щастливата среда? Виждам приложения от Apple, които го правят по моя начин или с бутоните за добавяне/премахване един до друг, но мразя последната опция. Има ли друга добра (и за предпочитане обща) конвенция за контролите за изтриване? Мислех за меню с действия, но не мисля, че имам други действия, които да влизат в него, което прави менюто малко тънко.


Актуализация Трябва също да отбележа, че изтриването трябва да е рядка опция - приложението е в бета версия, така че потребителите изпробват всичко. Това е дневник за музикални практики, така че създаването на нови неща за практикуване се случва толкова често (и определено е необходимо, когато започнете да използвате приложението), но изтриването им не е толкова често.


person Community    schedule 25.04.2010    source източник


Отговори (5)


Бих казал, че това зависи от това колко важно е изтриването за конкретната задача. Дали това е нещо, което потребителят трябва да прави често или много рядко. Ако е рядко, изтриването трябва просто да се остави като опция от менюто Редактиране и може би като backspace (Защо cmd-backspace? Ако можете да имате само backspace, вероятно няма да получите толкова много заявки.)

Както при всичко в дизайна на интерфейса, моето мнение е да приложа правило 80-20. Ако нещо принадлежи към 20% от най-използваните функции, то трябва да бъде изложено директно в интерфейса. Ако е в останалите 80%, можете да го скриете по-дълбоко (напр. в меню, меню за действие и т.н.).

Бутон + определено е в първите 20% --- не можете да правите нищо без него --- докато изтриването обикновено не е обичайна операция и е разрушително, така че може би е по-добре да се скрие малко.

person Drew McCormack    schedule 26.04.2010
comment
Промяната на клавишната комбинация на backspace я прави по-откриваема, без да е по-вероятно да се случи случайно, харесва ми. Благодаря. - person ; 26.04.2010
comment
Backspace също може да бъде малко опасно, в зависимост от това за какво друго се използва (т.е. дали може или да изтрие текст от обект, или да изтрие целия обект в зависимост от това какво е избрано в момента). Но докато undo работи за изтриване, това вероятно не е твърде лош риск. - person Gordon Davisson; 27.04.2010

Забележката на Дрю винаги е първото ви внимание. При равни други условия не съм привърженик на изтриването толкова лесно, колкото създаването; това е опасно и сравнително по-рядко действие и потребителският интерфейс трябва да отразява този факт. Въпреки това, липсата на изричен контрол за изтриване може наистина да доведе до запитвания за поддръжка (същото се случи в MoneyWell, след като бутоните минус бяха премахнати). Проблемът е, че няма да чуете от хората, които са избегнали случайно изтриване, като са натиснали контрола за изтриване твърде близо до плюс; тези хора са щастливи и тихи. Ще чуете обаче от онези, които не могат веднага да намерят бутон, който да щракнат за изтриване, въпреки че почти всички приложения на Apple нямат такъв контрол.

Ако смятате, че имате нужда от изричен потребителски интерфейс за изтриване, мисля, че можете да намерите средно положение. Проблемът с контролите за изтриване е случайно задействане и конвенционалното "решение" на този проблем е сигнал за потвърждение. Проблемът с това е колко натрапчиви и дразнещи са те, защото са модални. iPhone OS може да ни даде урок тук: можете да направите потвърждението изцяло контекстно и немодално.

Примери са изтриване на ред (плъзнете, за да поставите реда в неговото състояние „наистина ли искате да изтриете?“, което визуално има тенденция да плъзне червен бутон „Изтриване“ в изгледа), след което взаимодействайте отново (чрез докосване на „Изтриване“), за да потвърдите действително действието. Има подобен модел в App Store, при който докосването на бутона за цена го променя в бутон за покупка; това е по същество вградено, немодално потвърждение. Предимството е, че ако докоснете някъде другаде (или може би изчакате известно време), контролата се връща в нормалното си състояние сама - не е необходимо изрично да я отхвърляте, преди да продължите да работите.

Може би този вид подход (немодална промяна като вид вградено потвърждение) може да се отърве от заявките за поддръжка, като направи контролите за изтриване изрични, но също така да закърпи някои от вашите разумни опасения относно натрапчивото потвърждение.

person Matt Legend Gemmell    schedule 26.04.2010

Обичайното решение на този проблем е да поставите бутоните [+] и [-] един до друг (вижте например панела Мрежа в Системни предпочитания). Обикновено намирам тези бутони за достатъчно големи, за да не натисна грешния по погрешка, въпреки че виждам, че това може да е проблем.

Ако тази опция не ви подхожда, може би се вдъхновете от Safari: поставете „x“ в избрания (или задържан) елемент.

Тъй като приложението ви поддържа отмяна на изтриване, бих ви предложил да направите грешката да направите изтриването на неща лесно (за сметка на това, че го правите твърде лесно) и да направите очевидното, че тези грешки лесно се отменят способен. GMail върши прилична работа с това.

HTH.

person nornagon    schedule 25.04.2010

Колко често е необходимо изтриване? Данните и очакванията на потребителя насърчават ли честото изтриване на тези данни? (списък със задачи ли е например)? Ако е така, със сигурност бих включил контекстно меню за действие, дори ако Изтриване беше единствената опция.

Cmd + Backspace също може да е малко необичайно за хората - знам, че се използва на други места в OSX, но тези места също предоставят контекстни менюта за излагане на изтриването - ще се изненадам, ако всеки потребител знае за Cmd + Backspace, така че аз Вероятно бих го променил на Backspace (имате поддръжка за отмяна, така че сте покрити там).

И накрая, надявам се, че не звуча като глупак, но предполага, че вградената помощ не предлага достатъчно насоки по този въпрос - може би си струва да го преразгледате?

person dannywartnaby    schedule 26.04.2010
comment
Вградената помощ има раздел от най-високо ниво за изтриване (на същото ниво като създаването), така че мисля, че потребителите вероятно не посещават помощта. - person ; 26.04.2010

Мат даде почти същия отговор, който щях да напиша.

Обърнете внимание, че когато изтриете обекта, трябва да го анимирате: това осигурява ценна визуална обратна връзка: анимацията (около 1/3 от секундата е добра) е достатъчно дълга, за да привлече вниманието на потребителя и той ще види как обектът изчезва . Ако обектът просто изчезне без анимиране, потребителят ще забележи, че нещо се е променило моментално в списъка, но ще бъде по-малко сигурен какво е то. Анимацията подсилва значението на бутона за изтриване в менталния модел на потребителя.

person adurdin    schedule 26.04.2010