在NSMenuItem中设置NSScrollView的最大高度

时间:2016-05-03 04:34:03

标签: xcode swift macos nstableview nsmenuitem

我目前正在开发OS X的菜单栏应用程序。我想在菜单中的NSTableView中显示一些数据。我已经设法将第一个NSMenuItem的视图设置为我的NSScrollView。 问题是我不知道如何设置NSScrollView的最大高度。我想要一些类似于Shazam或Adobe Creative Cloud应用程序的东西:一个带有TableView的小菜单,它滚动但不会填满整个屏幕高度。

以下是我目前的情况:

NSScrollView inside NSMenuItem

它现在的工作方式是菜单自动填充整个屏幕,具体取决于我放入TableView的数据量。

以下是Shazam应用程序的截图:

Shazam App

它们在表格内显示大量信息,但限制NScrollView具有固定的高度。

我不认为这很难做到,但我不知道在哪里寻找选项。

任何帮助都会非常感激:)

此致

蒂莫

1 个答案:

答案 0 :(得分:0)

我终于明白了!我为NSMenuItem分配了错误的视图。

现在我的AppDelegate中有两个出口:

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

在applicationDidFinishLaunching()中,我将NSScrollView分配给NSMenuItem的view属性:

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

我以前遇到的问题是我将菜单项视图直接设置为NSTableView,而不是NSScrollView。现在一切都很好。

这就是现在的结果:

Final Result

正是我想要的:)

此致

蒂莫