当我在Xcode中使用storyboard创建一个新的基于文档的项目并运行它时,新窗口位于屏幕下半部分的某个位置。
这是因为初始位置设置为具有比例关系的屏幕位置。
现在,我宁愿我的窗口从左上角开始,例如在菜单栏左侧20x20的固定位置。看起来,Interface Builder中的设置没有提供。它是相对的(然后位置根据屏幕大小而变化)或绝对值,但无法定义从屏幕顶部到窗口顶部的距离。
另外,我仍然需要级联新窗口,即不将每个新窗口设置为20x20,而是进一步级联。
NSWindowController
的子类,并将其指定为IB中的窗口控制器。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];
}