我需要把我的nswindow放在屏幕的右上角,菜单栏的正下方(比如通知)。做这个最好的方法是什么?
最佳答案
可以使用以下命令将窗口位置设置为右上角:
- (void)setWindowPosition
{
NSPoint pos;
pos.x = [[NSScreen mainScreen] visibleFrame].origin.x + [[NSScreen mainScreen] visibleFrame].size.width - [_window frame].size.width ;
pos.y = [[NSScreen mainScreen] visibleFrame].origin.y + [[NSScreen mainScreen] visibleFrame].size.height - [_window frame].size.height ;
[_window setFrameOrigin : pos];
}
在您的
applicationDidFinishLaunching:
中调用此方法,并注册windowDidResizeNotification
以处理大小调整事件:- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
[self setWindowPosition]; //set window pos
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleNotification:) name:NSWindowDidResizeNotification object:nil]; //register resize notification
}
现在在通知处理程序方法中,再次更新窗口位置。
- (void)handleNotification: (id) sender
{
[self setWindowPosition];
}