【发布时间】:2019-05-15 06:34:11
【问题描述】:
我有一个想要显示为模式窗口的窗口 (OS X 10.10)。我正在为窗口加载 NIB,并且能够成功设置标题,然后显示窗口。但无论我做什么试图影响窗口位置都行不通。
这有效(NSWindowController 子类的一部分):
[[self window] setTitle:title];
[[NSApplication sharedApplication] runModalForWindow:[self window]];
以下是我在设置标题后尝试影响位置的方法:
[[self window] setFrameOrigin: NSMakePoint(200.0, 200.0) ];
[[self window] setFrameTopLeftPoint: NSMakePoint(200.0, 200.0) ];
[[self window] setFrame: NSMakeRect(200, 300, [[self window] frame].size.width, [[self window] frame].size.height) display:YES];
(我也尝试了其他值 - 只是为了测试,但没有。)
我什至可以查询
[[self window] frame]
它假装接受新值,但窗口顽固地一直显示在相同的位置。
什么给了?
【问题讨论】:
-
在documentation 中他们说“如果它不可见,则窗口使用其
center方法中的值在屏幕上居中” -
听起来像是 RTFD 的案例...... :) 我错过了那个小花絮。我现在创建了一个自定义窗口类,在其中我覆盖了
center方法,这似乎成功地抑制了不希望的行为! -
你能分享一些相关的代码吗?
标签: cocoa osx-yosemite