我想下面的图片可以很好地描述这个问题..。uimenucontroller.png
我还在这里复制了相应的代码部分:
CGPoint point = [sender locationInView:self];
selectedLine = [self lineAtPoint:point];
if(selectedLine) {
[self becomeFirstResponder];
UIMenuController *menuController = [[UIMenuController sharedMenuController] retain];
NSLog(@"count: %d", [[menuController menuItems] count]);
UIMenuItem *menuItem = [[UIMenuItem alloc] initWithTitle:@"???" action:@selector(delete:)];
[menuController setMenuItems:[NSArray arrayWithObjects: menuItem, nil]];
NSLog(@"count: %d", [[menuController menuItems] count]);
for (UIMenuItem *item in [menuController menuItems]) {
NSLog(@"%@", [item title]);
}
[menuController setTargetRect:CGRectMake(point.x, point.y, 2, 2) inView:self];
[menuController setMenuVisible:YES animated:YES];
[menuController release];
[menuItem release];
} else {
[[UIMenuController sharedMenuController] setMenuVisible:NO animated:YES];
}
[linesInProcess removeAllObjects];
[self setNeedsDisplay];控制台输出:
2012年-10-15 14:02:16.450 TouchTracker8808 8808:C07 Tap
2012年-10-15 14:02:16.455 TouchTracker8808 8808:C07计数:0
2012年-10-15 14:02:16.455 TouchTracker8808 8808:C07计数:1
2012年-10-15 14:02:16.456 TouchTracker8808 8808:C07 ??
2012年-10-15 14:02:16.459 TouchTracker8808 8808:C07线发布
在运行时,只向UIMenuItem添加一个UIMenuController,在menuItems NSArray中只添加一个,但是模拟器中出现了两个菜单项。
如果我点击删除项目,它会发送删除:消息给自己。实际上,标题是“删除”之前,它似乎是缓存的。
已经尝试在iPhone模拟器上重置内容和设置。还删除了DerivedData文件夹的内容..。还没有解决办法。不久也会在设备上进行测试。
你有什么想法吗?
在这里您可以找到完整的项目:https://www.dropbox.com/s/wg9ol63aa05px26/TouchTracker.zip
谢谢你,加布·奥罗兹
发布于 2012-10-15 15:49:22
"Delete“是始终可见的系统菜单项。您的自定义菜单项将添加到该菜单项中。来自UIMenuController类引用
删除菜单项已添加到系统菜单项集中。点击它调用UIResponderStandardEditActions操作方法delete:,也添加在iOS 3.2中。
https://stackoverflow.com/questions/12898662
复制相似问题