2017-05-01 2 views
0

Ich erstelle eine MenuBar Swift Cocoa-Anwendung, die eine Liste der Github-Repositorys des Benutzers anzeigt. Nach dem Anklicken öffnet sich ein neues Browserfenster mit dem Repository auf github.com.So zeigen Sie die Suchleiste in NSMenuItem an

Ich bin erfolgreich Laden der Liste der Repos und Rendern sie NSMenuItem Objekte. Jetzt versuche ich, eine Suchleiste oben auf der Liste hinzuzufügen und die Elemente entsprechend der Suchphrase neu zu rendern.

Meine Fragen sind:

  1. Was ist der beste Ansatz eine „Suchleiste“ in der NSMenu angezeigt werden?
  2. Gibt es eine Standardmethode zum "Suchen/Filtern" NSMenuItem s?
  3. Soll ich das gesamte Menü (Aufruf .removeAllItems()) erneut rendern und neue Elemente dynamisch hinzufügen? Oder sollte ich zwei statische Menüs haben? Ich frage das, weil das Layout (z. B. NSMenuItem s) Unterschied sein wird, wenn der Benutzer sucht und wenn nicht.

Ich benutze Swift 3 und Xcode 8.3. Vielen Dank!

+1

Es gibt nichts besonderes eingebaut zum Filtern eines Menüs. Also würde ich einfach removeAllItems versuchen und sie bei Bedarf hinzufügen. – catlan

+0

danke @catlan Ich werde das tun! –

Antwort

1

Nun, nach ein paar Monaten des Versuchs, habe ich es herausgefunden.

  1. Was ist der beste Ansatz eine „Suchleiste“ in der NSMenu angezeigt werden?

    Sie können eine NSMenuItem zum NSMenu hinzufügen und es Ansicht ist auf eine CustomView (searchItem.view = searchView, verbinden searchItem und searchView indem sie sie aus dem Storyboard in die Steuerung ziehen).

  2. Gibt es eine Standardmethode zum Suchen/Filtern von NSMenuItems?

    Nein, gibt es nicht. Löschen Sie die Elemente und rendern Sie sie erneut.

  3. Soll ich das gesamte Menü (Aufruf .removeAllItems()) erneut rendern und neue Elemente dynamisch hinzufügen? Oder sollte ich zwei statische Menüs haben? Ich frage das, weil das Layout (z. B. NSMenuItems) Unterschied sein wird, wenn der Benutzer sucht und wenn nicht.

    Mit zwei Untermenüs erwies sich eine gute Lösung.

Verwandte Themen