- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个需要在各种场景下在屏幕上显示上下文菜单的应用程序。在我正在编写的函数中,我无权访问任何 NSWindows 或 NSView。我想使用 popUpMenuPositioningItem:atLocation:inView 因为这个函数在 10.6 中非常适合我。不过,我们要求支持10.5,所以这个功能对我来说不可用。
正如文档中所述,我最感兴趣的功能是:
If view is nil, the location is interpreted in the screen coordinate system. This allows you to pop up a menu disconnected from any window.
基本上,我需要显示屏幕上给定位置的上下文菜单,但没有任何关联的 View 。
有什么方法可以在10.5上实现这一点吗?
最佳答案
// Set up the button cell, converting to NSView coordinates. The menu is
// positioned such that the currently selected menu item appears over the
// popup button, which is the expected Mac popup menu behavior.
NSPopUpButtonCell* button = [[NSPopUpButtonCell alloc] initTextCell:@""
pullsDown:NO];
[button autorelease];
[button setMenu:menu_];
// We use selectItemWithTag below so if the index is out-of-bounds nothing
// bad happens.
[button selectItemWithTag:index];
[button setFont:[NSFont menuFontOfSize:fontSize_]];
// Create a dummy view to associate the popup with, since the OS will use
// that view for positioning the menu.
NSView* dummyView = [[[NSView alloc] initWithFrame:bounds] autorelease];
[view addSubview:dummyView];
NSRect dummyBounds = [dummyView convertRect:bounds fromView:view];
// Display the menu, and set a flag if a menu item was chosen.
[button performClickWithFrame:dummyBounds inView:dummyView];
if ([self menuItemWasChosen])
index_ = [button indexOfSelectedItem];
[dummyView removeFromSuperview];
关于cocoa - 寻找 popUpMenuPositioningItem :atLocation:inView: equivalent for 10. 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2203708/
该方法的文档说:“在指定位置弹出菜单。”但参数似乎描述了不同的情况: item The menu item to be positioned at the specified location in
我有一个按钮,在按钮的操作方法中,我使用-popUpMenuPositioningItem:atLocation:inView:以编程方式创建一个菜单。 . 如何获取用户选择的菜单项?如果我用 NSP
我正在开发一个需要在各种场景下在屏幕上显示上下文菜单的应用程序。在我正在编写的函数中,我无权访问任何 NSWindows 或 NSView。我想使用 popUpMenuPositioningItem:
我是一名优秀的程序员,十分优秀!