如何在屏幕左上角放置并级联新文档窗口?

问题描述 投票:0回答:1

当我在Xcode中使用storyboard创建一个新的基于文档的项目并运行它时,新窗口位于屏幕下半部分的某个位置。

这是因为初始位置设置为具有比例关系的屏幕位置。

现在,我宁愿我的窗口从左上角开始,例如在菜单栏左侧20x20的固定位置。看起来,Interface Builder中的设置没有提供。它是相对的(然后位置根据屏幕大小而变化)或绝对值,但无法定义从屏幕顶部到窗口顶部的距离。

另外,我仍然需要级联新窗口,即不将每个新窗口设置为20x20,而是进一步级联。

nswindow appkit
1个回答
0
投票
  1. 创建NSWindowController的子类,并将其指定为IB中的窗口控制器。
  2. 在这个子类中,覆盖windowDidLoad
- (void)windowDidLoad {
    [super windowDidLoad];

    self.shouldCascadeWindows = YES;

    // Position at top left corner of main screen
    NSWindow *w = self.window;
    NSPoint pos = NSMakePoint (20, 40); // this is where the 1st window appears
    pos.y = NSScreen.mainScreen.frame.size.height - w.frame.size.height - pos.y;
    [w setFrame:CGRectMake(pos.x, pos.y, w.frame.size.width , w.frame.size.height) display:NO];
}
© www.soinside.com 2019 - 2024. All rights reserved.