我使用 Autolayout NSWindow 。它只包含一个视图,其中放置了一个标签( NSTextField )。此标签中的文本是动态的,并在我的应用程序运行时更改。当插入较长的文本时,由于我的垂直和水平约束,我的窗口完全调整大小。
我的问题是,我的窗口应该位于屏幕的右上角(位于菜单栏下方)。当我的窗口在满足我的约束时调整大小时,我需要将窗口重新定位在屏幕上。
最佳方法是什么?
答案 0 :(得分:1)
在applicationDidFinishLaunching:方法中注册windowDidResizeNotification以处理resize事件:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleNotification:) name:NSWindowDidResizeNotification object:nil]; //register resize notification
}
然后在通知处理程序方法中,使用您之前使用的代码将窗口设置为右上角。
- (void)handleNotification: (id) sender
{
//code to set window to top right corner
}
我最近的一个答案可以帮助你:https://stackoverflow.com/a/19677527/1987246