2015-09-02 6 views
6

ich diesen Code haben, zu einem Menüpunkt reagiert, nachdem eine Kraft Berührung angezapft:Selector nicht auf den Menüpunkt nach Kraft Touch genannt

class InterfaceController: WKInterfaceController { 
    override init() { 
     super.init() 

     self.addMenuItemWithItemIcon(WKMenuItemIcon.Pause, title: "Pause", action: Selector("test")) 
    } 

    func test() { 
     print("test") 
    } 
} 

Wenn ich den Kontakt erzwingen, das Menü erscheint. Wenn ich auf die Schaltfläche "Pause" tippe, wird test() nicht aufgerufen.

Irgendwelche Ideen, warum dies sein könnte?

Antwort

25

Gelöst.

Obwohl es das Ergebnis eines dummen Fehlers ist (sind nicht die meisten Probleme?), Ich denke, das ist etwas, was viele Leute treffen werden, so behalte ich es hier mit meiner Antwort.

Ich aktiviert Force Touch auf dem Simulator, damit ich das Menü anzeigen konnte. Wenn ich erneut auf die Schaltfläche tippe, ist die erzwungene Berührung weiterhin aktiviert, sodass ich mich gezwungen fühle, das Menü zu schließen.

Lösung: Deaktivieren Sie Force Touch, bevor Sie auf eine Menüschaltfläche tippen.

+0

Sparte mir viel Zeit. Danke – Dhilip

+0

Einer der besten Tipps! Vielen Dank. – yossile

+0

Wow ... danke ... –

2

Ich wollte mit meinem Dank für diese Lösung kommentieren, aber ich habe nicht den Vertreter, also werde ich mit, DANKE beginnen!

Allerdings kann ich auch einen Zusatz zu der Lösung hinzufügen, indem Sie darauf hinweisen, dass die Tastenkombinationen hier wirklich nützlich sind, um zwischen den Pressdrücken der Kraft zu wechseln.

⇧⌘1 - für Flachdruck (tap)

⇧⌘2 - für Tiefdruck (Kraft Presse)

Achten Sie darauf, die iOS-Simulator (watch) fokussiert wird, und Sie werden zu gut gehen.

+0

Was Sie sagen, ist interessant, aber es wäre wahrscheinlich besser, das in einem Kommentar als eine zusätzliche Antwort hinzuzufügen. – BrunoLevy

+0

Stimmt, aber ich dachte, das war klar von meiner ersten Sentance? _Ich wollte mich mit meinem Dank für diese Lösung kommentieren, aber ich habe keinen Vertreter, also fange ich mit DANKE an! _ – mbarnettjones

0

Ich möchte ein kleines Detail hinzufügen, um das SIM-Verfahren expliziter zu machen, weil ich diese Frage und Antwort vorher gesehen und nicht richtig ausgeführt habe, weil sie nicht ganz offensichtlich war (zumindest für mich).

  1. Drücken Sie ⇧⌘1 für alle regulären Druckvorgänge.

  2. Drücken Sie ⇧⌘2, bevor Sie force touch verwenden.

  3. Schwieriges Teil: Nachdem der Menüeintrag erscheint, drücken Sie erneut 01 , bevor den Menüeintrag verwerfen!