2016-05-03 23 views
0

Ich arbeite derzeit an einer Menüleiste Anwendung für OS X. Ich möchte einige Daten in einem NSTableView im Menü anzeigen. Ich habe es bereits geschafft, die Ansicht des ersten NSMenuItem auf meine NSScrollView zu setzen. Das Problem ist, dass ich nicht weiß, wie die maximale Höhe für das NSScrollView festgelegt wird. Ich möchte etwas Ähnliches wie die Shazam- oder Adobe Creative Cloud-App: Ein kleines Menü mit einem TableView, das zwar scrollt, aber nicht die gesamte Höhe des Bildschirms ausfüllt. HierEinstellung der maximalen Höhe für NSScrollView in NSMenuItem

ist, was ich derzeit haben:

NSScrollView inside NSMenuItem

So wie es jetzt funktioniert, ist, dass das Menü automatisch den gesamten Bildschirm ausfüllt, je nachdem wie viele Daten i in die Tableview setzen.

Hier ist ein Screenshot von der Art und Weise der Shazam app es tut:

Shazam App

Sie zeigen viele Informationen in der Tabelle, sondern beschränkt die NScrollView eine feste Höhe zu haben.

Ich denke nicht, dass dies schwer zu tun ist, aber ich weiß nicht, wo ich nach der Option suchen soll.

Jede Hilfe wäre wirklich zu schätzen :)

Grüße,

Timo

+0

vielleicht, wenn der viewWillAppear gesetzt den Rahmen der wollte Bildlaufansicht? – hola

Antwort

0

ich es endlich herausgefunden! Ich habe dem NSMenuItem eine falsche Sicht zugewiesen.

Jetzt habe ich zwei Auslässen in meinem AppDelegate:

@IBOutlet weak var myMenuItem: NSMenuItem! 
@IBOutlet weak var myScrollView: NSScrollView! 

Innen applicationDidFinishLaunching() i weisen Sie die NSScrollView der Ansicht Eigenschaft des NSMenuItem:

func applicationDidFinishLaunching(aNotification: NSNotification) { 
    ... 
    self.myMenuItem.view = myScrollView 
    ... 
} 

Das Problem, das ich habe verwendet, dass Ich setze die Ansicht der Menüelemente direkt auf NSTableView, nicht auf NSScrollView. Alles funktioniert jetzt gut.

Das ist, was das Ergebnis ist nun auf der Suche:

Final Result

Genau das, was ich :)

Grüße,

Timo