我正在创建的应用程序需要一个功能,如用户选择一些文本,弹出菜单显示,用户点击“搜索”菜单直接执行搜索。
问题是UIMenuController提供的当前弹出菜单不支持扩展。所以我的想法是订阅“UIMenuControllerDidShowMenuNotification”,获取弹出菜单的框架,并在旁边显示“搜索”按钮。
但在实施过程中,我遇到了一个奇怪的问题,通知似乎永远不会被发送,意味着菜单显示后,我仍然无法得到通知,以下是代码的关键部分。
- (void)viewDidLoad { [super viewDidLoad]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(menuDidShow:) name:UIMenuControllerWillShowMenuNotification object:nil]; } - (void)viewDidUnload { // Release any retained subviews of the main view. // e.g. self.myOutlet = nil; [[NSNotificationCenter defaultCenter] removeObserver:self name:UIMenuControllerDidShowMenuNotification object:nil]; self.textView = nil; self.searchBar = nil; } - (void)menuDidShow:(NSNotification *)notification { NSLog(@"menu did show!"); }
代码太简单了,不能弄错,有人可以帮我理解发生了什么吗?或者我错过了什么?