Objective c NSWindow将框架设置为高于屏幕

Objective c NSWindow将框架设置为高于屏幕,objective-c,cocoa,nswindow,nswindowcontroller,Objective C,Cocoa,Nswindow,Nswindowcontroller,我需要帮助。我有一个类似Adium的应用程序,带有垂直滑块。但我的应用程序会根据内容改变窗口高度。如果屏幕高度低于我的应用程序的窗口高度,我的窗口会自动降低高度 当我尝试将setFrame用于我的窗口并将window.frame.size.height设置为高于屏幕高度时,则不会发生任何事情 因此,问题是:如何将窗口框设置为高于屏幕高度?默认情况下,框架确保您无法将窗口调整到屏幕框之外。要更改此行为,请将NSWindow子类化,并重写constraintframerect:toScreen:方法

我需要帮助。我有一个类似Adium的应用程序,带有垂直滑块。但我的应用程序会根据内容改变窗口高度。如果屏幕高度低于我的应用程序的窗口高度,我的窗口会自动降低高度

当我尝试将setFrame用于我的窗口并将window.frame.size.height设置为高于屏幕高度时,则不会发生任何事情


因此,问题是:如何将窗口框设置为高于屏幕高度?

默认情况下,框架确保您无法将窗口调整到屏幕框之外。要更改此行为,请将
NSWindow
子类化,并重写
constraintframerect:toScreen:
方法以返回未更改的帧;大概是这样的:

- (NSRect)constrainFrameRect:(NSRect)frameRect toScreen:(NSScreen *)screen
{
  //return the unaltered frame, or do some other interesting things
  return frameRect;
}

以下是swift版本:
override func constraintframerect(frameRect:NSRect,to screen:NSScreen?->NSRect{return frameRect}