mar*_*rcc 9 cocoa nsstatusitem nsstatusbar
NSStatusItem在我将它添加到Cocoa的状态栏后,是否有可能得到一个框架?当我的应用程序启动时,我将一个项目添加到系统状态栏,并想知道它的位置,是可能的.
小智 26
以下似乎工作 - 我已经看到类似的iOS应用程序解决方案,据说他们允许提交到应用商店,因为你仍然使用标准的SDK方法.
NSRect frame = [[statusBarItem valueForKey:@"window"] frame];
Run Code Online (Sandbox Code Playgroud)
Tay*_*lor 25
使用10.10,NSStatusItem具有一个button属性,用于获取状态项位置而不设置自定义视图.
NSStatusBarButton *statusBarButton = [myStatusItem button];
NSRect rectInWindow = [statusBarButton convertRect:[statusBarButton bounds] toView:nil];
NSRect screenRect = [[statusBarButton window] convertRectToScreen:rectInWindow];
NSLog(@"%@", NSStringFromRect(screenRect));
Run Code Online (Sandbox Code Playgroud)
如果您在状态项上设置了自定义视图:
NSRect statusRect = [[statusItem view] frame];
NSLog(@"%@", [NSString stringWithFormat:@"%.1fx%.1f",statusRect.size.width, statusRect.size.height]);
Run Code Online (Sandbox Code Playgroud)
否则我认为不可能使用可用且已记录的 API。
编辑:合并评论。
| 归档时间: |
|
| 查看次数: |
3360 次 |
| 最近记录: |