iPhone SDK:UIMenuController 在选定的 UITableCell 上方弹出

Posted

技术标签:

【中文标题】iPhone SDK:UIMenuController 在选定的 UITableCell 上方弹出【英文标题】:iPhone SDK: UIMenuController to popup above selected UITableCell 【发布时间】:2012-06-16 20:57:35 【问题描述】:

我正在尝试在用户选择的任何单元格上方弹出 UIMenuControl....

目前我在下面有这段代码,它总是将 UIMenuControl 放在 iPhone 屏幕的中间...

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath


[tableView deselectRowAtIndexPath:indexPath animated:YES];

[self becomeFirstResponder];

UIMenuItem *menuItem = [[UIMenuItem alloc] initWithTitle:@"View" action:@selector(viewListing:)];
UIMenuItem *menuItem1 = [[UIMenuItem alloc] initWithTitle:@"Edit" action:@selector(editListing:)];
UIMenuItem *menuItem2 = [[UIMenuItem alloc] initWithTitle:@"Call" action:@selector(callListing:)];
UIMenuItem *menuItem3 = [[UIMenuItem alloc] initWithTitle:@"Open Houses" action:@selector(openHouses:)];

UIMenuController *menuController = [UIMenuController sharedMenuController];
[menuController setTargetRect:CGRectMake(0, 205, 320, 200) inView:self.view];
menuController.menuItems = [NSArray arrayWithObjects:menuItem, menuItem1, menuItem2, menuItem3, nil];
menuController.arrowDirection = UIMenuControllerArrowDown;
[menuController setMenuVisible:YES animated:YES];

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

很明显,您的菜单始终位于中心:您正在硬编码坐标。

解决方案: 您首先必须计算单元格的位置。然后从中计算您的targetRect 框架。

提示:您可以使用rectForRowAtIndexPath: 获取单元格的框架。

【讨论】:

以上是关于iPhone SDK:UIMenuController 在选定的 UITableCell 上方弹出的主要内容,如果未能解决你的问题,请参考以下文章

XMPP - iphone sdk 中的用户搜索?在 iphone sdk 中使用 XEP-0055?

如何使用 iOS 6 sdk 为 iPhone 4s 或 iPhone 4 制作视图控制器?

iPhone:Airplay SDK有啥用?

MAP 与 iPhone 3.0 SDK 一起使用都有哪些限制?

我在哪里可以获得 iPhone 2.0 SDK?

Iphone 4 sdk - 如何确定 applicationWillEnterForeground 是不是因通知而被触发?