Effizientes Klassifizieren von Standard-Cocoa-Steuerelementen

7

Obwohl es ein Human Interface Guidelines-Dokument (HIG) gibt, verwenden viele hochwertige Mac-Desktop-Anwendungen benutzerdefinierte Steuerelemente. Meine Frage ist, was ist der beste Ansatz, um Subclassing-Steuerelemente für die Cocoa-Entwicklung zu starten? Es überrascht mich, wie wenig (gute) Informationen es zu diesem Thema gibt. Welcher Weg ist der beste Weg, um zu folgen, damit Sie nicht mit einer netten, aber halb gebrochenen Kontrolle enden?

    
Bart Jacobs 05.02.2011, 13:09
quelle

2 Antworten

32

Hier ist eine Checkliste:

  • Stellen Sie sicher, dass Ihr Steuerelement bei doppelter Auflösung korrekt funktioniert. Verwenden Sie Quartz Debug, um dies zu testen. Sie sollten sowohl die Zeichnungsqualität (in allen Zuständen - normal, ausgewählt, gedrückt, deaktiviert und alle anderen) als auch die Funktionsfähigkeit testen (die Treffer trifft, wenn Dinge auf dem Bildschirm / anderem Zielgerät angezeigt werden).
  • Stellen Sie sicher, dass Ihr Steuerelement bei 1,5 (oder einer anderen, ähnlich nicht integrierten) Auflösung korrekt funktioniert.
  • Testen Sie, wie das Standard-Steuerelement funktioniert, wenn Sie darauf klicken. Sie werden das wahrscheinlich trotzdem tun. Tun Sie wie die Standardsteuerung.
  • Testen Sie, wie die Standardsteuerung funktioniert, wenn Sie halb klicken (Maus nach innen, Maus nach außen).
  • Testen Sie, wie die Standardsteuerung funktioniert, wenn Sie auf die dunkle Seite klicken (mit der Maus nach unten, mit der Maus nach oben).
  • Testen Sie, wie das Standardsteuerelement funktioniert, wenn es hineingezogen wird.
  • Testen Sie über vier mit den anderen Maustasten (rechts und Mitte).
  • Testen Sie, was die Standardsteuerung macht, wenn Sie mit einem Scrollrad blättern. Testen Sie auch Shift + Scroll und scrollen Sie auf einer Maus, die sie enthält (z. B. die meisten Logitech-Mäuse), nach links / rechts.
  • Testen Sie, was die Standardsteuerung macht, wenn Sie mit zwei Fingern in jeder Achse und in beiden Achsen scrollen.
  • Testen Sie, was die Standard-Kontrolle macht, wenn Sie kneifen und wenn Sie sich lösen.
  • Testen Sie, was die Standardsteuerung macht, wenn Sie mit drei und vier Fingern in jeder Achse wischen.
  • Testen Sie, wie die Standardsteuerung mit aktiviertem "Full Keyboard Access" funktioniert. Kannst du darauf zugreifen? Kannst du es mit der Leertaste drücken? Können Sie es mit der Return-Taste eingeben? Kannst du es rausnehmen?
  • Testen Sie, wie die Standardsteuerung auf Accessibility-Abfragen reagiert. Verwenden Sie den Eingabehilfen-Inspektor. Informationen zum Beantworten von Barrierefreiheitsabfragen und -nachrichten finden Sie in den Richtlinien für die Barrierefreiheit von Cocoa deine Kontrolle.
  • Testen Sie Ihre App - einschließlich, aber nicht beschränkt auf Ihre benutzerdefinierten Steuerelemente - in VoiceOver. Augenbinde dich und versuche, die App mit VoiceOver alleine zu benutzen.
  • Falls zutreffend, testen Sie Ihre Ansicht. Sie können in der Vorschau drucken, wenn Sie keinen Baum für Ihren Entwicklungsprozess löschen möchten.
  • Testdruck in anderen Papiergrößen. Wenn Sie in den USA sind, testen Sie A4; Sonst test US Brief. Testen Sie noch andere Papiergrößen (wie Legal und A3), wenn Sie sich gründlich fühlen.
  • Wenn Sie einen Scroller implementieren ( ​​arm Sie ), testen Sie, ob Ihr Scroller korrekt auf "Gehe zu" reagiert Die Einstellung "(nächste Seite | Spot, auf die geklickt wurde)" im Bereich "Aussehen" in den Systemeinstellungen. "Richtig" bedeutet, dass es tun sollte, was der Benutzer ausgewählt hat.
  • Stellen Sie sicher, dass alle vier Einstellungen für die Position des Bildlaufpfeils richtig implementiert sind: Eins an jedem Ende (Mac-Stil), sowohl am unteren / linken Ende (NeXT-Stil), beide am oberen / rechten Ende, und beide an jedem Ende (Power-User-Stil). Wie immer müssen Sie sowohl richtig zeichnen als auch Treffer-Test / reagieren korrekt. (Vorgeschlagen von von @radiofreelunch / von David Dunham )
  • Wenn Sie einen Scroller implementieren, vergewissern Sie sich, dass er auf die Einstellung "Smooth scrolling" korrekt reagiert.
  • Prüfen Sie, ob es auf verschiedene Scrollgeschwindigkeitsvorgaben korrekt reagiert.
  • Wenn Sie ein Texteingabefeld einer Art oder eine Ansicht implementieren, die auf eine bestimmte spezielle Tastenkombination reagiert (z. B. Enter, um eine Nachricht in einer Eingabezeile zu senden), testen Sie rechts-nach-links (Hebräisch / Arabisch ) Texteingabe und alternative Eingabemethoden. Der Character Viewer ist ein guter Anfang.
  • Testen Sie auch, dass Sie ctrl-q nicht unterbrechen. Zum Beispiel sollte ctrl-q, Tab sollte immer ein Tab-Zeichen eingeben. Dasselbe gilt typischerweise für Option + (Schlüssel), z. B. Option-Return in einer Eingabezeile.
  • Testen Sie, dass es auf unterschiedliche Schlüsselwiederholungseinstellungen richtig reagiert.
  • Wenn Sie benutzerdefinierte Tastaturkurzbefehle (⌘ + null oder mehr andere Modifikatoren + einen oder mehrere Zeichenschlüssel) auf andere Weise als die standardmäßige Shortcut-Handhabung von Cocoa implementieren, testen Sie das benutzerdefinierte Abkürzungsverhalten unter Dvorak. Es gibt keinen schnelleren Weg, unsere Wahrnehmung Ihrer App zu verschlechtern, als auf ⌘ zu reagieren, indem Sie aufhören.
  • Zeigen Sie Ihre App für Benutzer, die sie noch nie benutzt oder noch keine Mockups gesehen haben. Programmierer disqualifizieren. Wenn sie Ihre Kontrolle nicht als (was auch immer es sein sollte) erkennen, gestalten Sie sie neu. Wenn Sie jemals sagen "der Scroller ist hier drüben" oder "Sie müssen darauf klicken", scheitern Sie sofort.
  • Testen Sie, ob Ihre Kontrolle reagiert (oder nicht reagiert, wenn eine Antwort gefährlich wäre), wenn Ihre App im Hintergrund ist. ( Vorgeschlagen von @chucker. )
  • Testen Sie, dass Ihr Steuerelement reagiert, aber die App nicht weiterleitet, wenn sich Ihre App im Hintergrund befindet und der Benutzer mit der ⌘-Taste darauf klickt. ( Vorgeschlagen von @chucker. )
  • Testen Sie die Größe Ihrer Ansicht. Unter anderem wird dadurch sichergestellt, dass Sie die Autoresize-Maske korrekt einstellen. Sie suchen auch nach Bugs - verzerrte Elemente, Lücken usw. (Teil dieses Vorschlags von @Bagelturf ).
  • Wenn Ihr Steuerelement tatsächlich ein Steuerelement ist, senden Sie es sizeToFit und stellen Sie sicher, dass es das Richtige tut. ( Vorgeschlagen von @Bagelturf. )
  • Wenn Sie mit Mauskoordinaten arbeiten, nehmen Sie nicht an, dass es sich um ganze Zahlen handelt. Stellen Sie sicher, dass Sie Bruchzahlen, Nullen (positive und negative) und negative Zahlen korrekt behandeln. (Teil dieses vorgeschlagen von @Bagelturf .)
  • Sie könnten auch erwägen, Ihr Steuerelement in ein Steuerelement und eine Zelle aufzuteilen. Im letzteren Fall führen Sie auch alle diese Tests für Ihre Zelle durch, die in einer NSMatrix und in einer NSTableColumn eingebettet ist.
  • Wenn Ihr Steuerelement über ein Menü verfügt, testen Sie, was passiert, wenn sich das Steuerelement an einer oder mehreren Rändern des Bildschirms befindet. Das Menü sollte sich bewegen, um nicht außerhalb des Bildschirmbereichs zu liegen.
  • Wenn Ihr Steuerelement über ein Menü verfügt, prüfen Sie, ob der Benutzer es mit der Pfeiltaste nach unten eingeben kann, wenn Sie "Full Keyboard Access" verwenden. Wenn es sich auch um ein Textfeld handelt (z. B. ein Kombinationsfeld), testen Sie, dass dies nur geschieht, wenn der Benutzer den Pfeil nach unten am Ende des Textes drückt. Andernfalls sollte das normale Textfeldverhalten gelten: Wenn Sie auf eine Zeile drücken, die nicht die letzte Zeile ist, bewegen Sie den Cursor eine Zeile nach unten, und drücken Sie die letzte Zeile nach unten, sollte sich an das Ende der Zeile bewegen.
  • Wenn Ihr Steuerelement über ein Menü verfügt, testen Sie, ob es beim Klicken geöffnet bleibt und nicht sofort geschlossen wird, wenn es geöffnet bleibt. Es gibt eine Funktion, mit der Sie dies richtig machen können , und es ist in 64-Bit verfügbar .
  • Wenn Ihr Steuerelement über ein Menü verfügt, prüfen Sie, ob es navigierbar ist (alle vier Pfeiltasten + Pos1, Ende, Bild auf, Bild ab), mit der Tastatur verwendbar (Leertaste / Zurück drücken) und abbrechen (esc).
Peter Hosey 05.02.2011, 17:03
quelle
3

Es ist schwer, etwas zu Peters Liste hinzuzufügen, aber wenn Sie eine Bildlaufleiste erstellen, achten Sie darauf, dass sie alle abweichenden Platzierungen der Bildlaufpfeile (wie DoubleBoth) behandelt.

    
David Dunham 05.02.2011 19:46
quelle

Tags und Links