UIMenuController控件的使用及菜单调不出的解决方法
来源:互联网 发布:数组指针指向一维数组 编辑:程序博客网 时间:2024/04/29 20:13
UIMenuController *popMenu = [UIMenuController sharedMenuController];
UIMenuItem *item1 = [[UIMenuItem alloc] initWithTitle:@”1″ action:@selector(menuItem1Pressed:)];
UIMenuItem *item2 = [[UIMenuItem alloc] initWithTitle:@”2″ action:@selector(menuItem2Pressed:)];
UIMenuItem *item3 = [[UIMenuItem alloc] initWithTitle:@”3″ action:@selector(menuItem3Pressed:)];
UIMenuItem *item4 = [[UIMenuItem alloc] initWithTitle:@”4″ action:@selector(menuItem4Pressed:)];
NSArray *menuItems = [NSArray arrayWithObjects:item1,item2,item3,item4,nil];
[popMenu setMenuItems:menuItems];
[popMenu setArrowDirection:UIMenuControllerArrowDown];
[item4 release];
[item3 release];
[item2 release];
[item1 release];
[popMenu setTargetRect:CGRectMake(162,195,0,0) inView:self.dialView];
[popMenu setMenuVisible:YES animated:YES];
后来在StackOverFlow上看到这个问题,同时也在cocoachina上找到相应的方法,原来要想显示弹出菜单,必须实现3个方法,缺一不可:
- becomFirstResponder方法,使view或者viewController的self成为第一响应者,可以在相应文件的任意地方调用实现该方法,不过建议与UIMenuController放在一起。
[self becomeFirstResponder];
- 设置-(BOOL) canBecomeFirstResponder的返回值为YES,原因不言而喻。
-(BOOL) canBecomeFirstResponder{
return YES;
}
- 重载函数-(BOOL) canPerfomAction:(SEL)action withSender:(id)sender,设置要显示的菜单项,返回值为YES。若不进行任何限制,则将显示系统自带的所有菜单项(很多的,自己可以试一下),在此,只显示自定义的4项,即:
-(BOOL) canPerformAction:(SEL)action withSender:(id)sender{
if (action == @selector(menuItem1Pressed:) || action == @selector(menuItem2Pressed:) ||
action == @selector(menuItem3Pressed:) || action == @selector(menuItem4Pressed:)) {
return YES;
}
return NO; //隐藏系统默认的菜单项
}
至于相应的菜单响应通过各selector函数来实现,如:
- (IBAction) menuItem1Pressed:(id)sender{
txtInputLabel.text = @”1″;
[[UIMenuController sharedMenuController] setMenuVisible:NO animated:YES];
}
如果将系统默认的菜单也显示出来,那么自定义的菜单将作为第二菜单,调用菜单时默认显示的是第一菜单,如果要直接显示第二菜单,根据cocoachina上一位同行总结出来的经验,先设置菜单可见性为NO即可:
[popMenu setMenuVisible:NO animated:YES];
- UIMenuController控件的使用及菜单调不出的解决方法
- UIMenuController控件的使用
- 关于UIMenuController的使用 弹出菜单UIMenuItem
- 关于UIMenuController的使用 弹出菜单UIMenuItem
- UIMenuController的使用,对UILabel拷贝以及定制菜单
- UIMenuController的使用,对UILabel拷贝以及定制菜单
- UIMenuController的使用,对UILabel拷贝以及定制菜单
- UIMenuController的使用,对UILabel拷贝以及定制菜单
- UIMenuController的使用,对UILabel拷贝以及定制菜单
- UIMenuController的使用,对UILabel拷贝以及定制菜单
- UIMenuController的使用,对UILabel拷贝以及定制菜单
- iOS UIMenuController的使用,对UILabel拷贝以及定制菜单
- UIMenuController的使用,对UILabel拷贝以及定制菜单
- UIMenuController的使用,对UILabel拷贝以及定制菜单
- UIMenuController的使用,对UILabel拷贝以及定制菜单
- UIMenuController的使用
- UIMenuController的使用
- UIMenucontroller的使用
- 网购火车票攻略(十一长假版)
- java流
- android PULL 解析XML
- QML使用WebView遇到的QSslSocket问题解决
- Find命令--1
- UIMenuController控件的使用及菜单调不出的解决方法
- hdu 4419 Colourful Rectangle
- 一个简单的中文自动转拼音
- 开源项目之电驴emule
- QT中常用的快捷键
- switch中局部变量的使用
- Find命令---2
- 【遥感微课堂】学习ENVI5.0
- Ubuntu 设置环境变量