dhr*_*hrm 3 cocoa objective-c nswindow
我需要将我的NSWindow放置在屏幕的右上方,就在菜单栏下方(如通知).这样做的最佳方法是什么?
Neh*_*eha 10
您可以使用以下方法将窗口位置设置为右上角:
- (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];
}
Run Code Online (Sandbox Code Playgroud)
在您的调用此方法applicationDidFinishLaunching:,并注册 windowDidResizeNotification处理resize事件为:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
[self setWindowPosition]; //set window pos
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleNotification:) name:NSWindowDidResizeNotification object:nil]; //register resize notification
}
Run Code Online (Sandbox Code Playgroud)
现在在您的通知处理程序方法中,再次更新窗口位置.
- (void)handleNotification: (id) sender
{
[self setWindowPosition];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3605 次 |
| 最近记录: |