Cocoa NSPoupButton:菜单跟踪中的事件?
当用户在NSPopUpButton中移动(或阅读)项目时,是否可以检测到告知我的控制器的操作?我似乎只在新选择时收到通知,我希望在用户滚动菜单中的任何项目时收到通知Cocoa NSPoupButton:菜单跟踪中的事件?,cocoa,nspopupbutton,Cocoa,Nspopupbutton,当用户在NSPopUpButton中移动(或阅读)项目时,是否可以检测到告知我的控制器的操作?我似乎只在新选择时收到通知,我希望在用户滚动菜单中的任何项目时收到通知 - (void)awakeFromNib { [[popupButton menu] setDelegate:self]; } - (void)menu:(NSMenu *)menu willHighlightItem:(NSMenuItem *)item { if(menu == [popupButton men
- (void)awakeFromNib
{
[[popupButton menu] setDelegate:self];
}
- (void)menu:(NSMenu *)menu willHighlightItem:(NSMenuItem *)item
{
if(menu == [popupButton menu])
{
//do something
}
}
谢谢
tom您可以将控制器设置为
nspoupbutton
菜单的代表。然后,当鼠标在菜单上移动时,将向您发送-menu:willHighlightItem:
委派消息
- (void)awakeFromNib
{
[[popupButton menu] setDelegate:self];
}
- (void)menu:(NSMenu *)menu willHighlightItem:(NSMenuItem *)item
{
if(menu == [popupButton menu])
{
//do something
}
}
我认为最好只是测试它们是否是同一个菜单(
menu==[popUpButton menu]
)。假设NSMenu实现了isEqual:
的更深层含义,那么当用户突出显示一个不相关菜单中恰好有“相同”(在某些定义中)菜单项的项目时,您真的想执行该操作吗?这是一个公平的观点。我修改了代码,使用了直接指针比较。非常酷。非常感谢您抽出时间回答。我要试一试!!