0

我有一个使用Autolayout的NSWindow。它只包含一个放置标签(NSTextField)的视图。此标签中的文本是动态的,并且在我的应用程序运行时会发生变化。当插入更长的文本时,由于我的垂直和水平约束,我的窗口会完美调整大小。

我的问题是,我的窗口应该位于屏幕的右上角(就在菜单栏下方)。当我的窗口在满足我的约束时调整大小时,我需要在屏幕上重新定位我的窗口。

最好的方法是什么?

4

1 回答 1

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

于 2013-10-30T09:18:10.763 回答