我一直在使用这里的示例创建一个自定义无标题栏窗口:
我发现这是我在Leopard,Snow Leopard和Lion中创建无标题栏窗口的唯一方法,其他方法在Leopard或Lion上都无法正常工作.(如果我尝试通过正常的NSWindow和IB调用无标题栏的窗口,它将不再在Leopard中启动)
到目前为止,这个自定义无标题栏的窗口在任何地方都很有用,但是我无法将它居中,只是在Interface Builder中只有一个固定的位置.
使用[窗口中心]将正常的NSWindow*窗口实现集中在一起相当容易,但我发现在这个自定义窗口子类上没有任何效果,这个窗口不是通过Interface Builder从nib创建的.
我从NSWindow尝试过一些东西,但似乎没什么用.
有任何想法吗?
我正在使用OS X的最新默认项目(10.11,Xcode 7.0).它使用故事板,层次结构如下:
Window Controller -> View Controller
Run Code Online (Sandbox Code Playgroud)
我想设置窗口的初始位置和帧大小.显然用户可以改变它,但我希望它从一些默认值开始.我已经尝试过子类化NSWindowController
,但这没有效果.
class WindowController: NSWindowController {
override func windowDidLoad() {
super.windowDidLoad()
guard let window = window else {
return
}
let windowOriginPoint = CGPoint(x: 0, y: 0)
let windowSize = CGSize(width: 800, height: 400)
window.setFrame(NSRect(origin: windowOriginPoint, size: windowSize), display: true)
print("windowDidLoad")
}
}
Run Code Online (Sandbox Code Playgroud)
这样做的正确方法是什么?
我试过了
self.frame.size
self.view!.frame.size
UIScreen.mainScreen().bounds.size
Run Code Online (Sandbox Code Playgroud)
他们都没有工作.
如何获得设备的正确屏幕尺寸?
我有一个 Xcode 项目,NSWindowController
其contentViewController
设置为NSViewController
. 我最近删除NSViewController
从故事板子类,并取代了contentViewController
用一个NSTabViewController
子类。
现在,当我运行应用程序时,NSWindow
打开的大小为 500x500,而不是第一个选项卡的大小。更重要的是,有没有看法,我可以在具有尺寸500×500的故事板看到,而且尺寸不是编程,无论是。窗口本身设置为不同的大小,NSTabViewController
第一个NSViewController
.
我假设我必须在某处设置某种约束,但如果有,我不知道在哪里/如何找到它。使用 Xcode 9.2 和 High Sierra。
在windowDidLoad()
工作中以编程方式将窗口的大小设置为正确的大小,但是如果我改变了视图的大小,我也必须改变它,这会很快变旧。
对不起,如果这是模糊的;我真的不知道什么样的屏幕截图或代码片段会有所帮助。
macos nsview nswindow nswindowcontroller nstabviewcontroller