Iphone 如何将自定义菜单项添加到UITextView菜单,该菜单是指向所选单词的Wikipedia页面的链接?
我是Xcode新手,我使用的是4.6.3版——Macbook对于新版本来说太旧了 我环顾了一下互联网和堆栈溢出,找不到我想要的东西,或者我无法让代码片段正常工作 我想在UITextView中长按单词时显示的菜单项中添加一个菜单项。我希望它说“Wiki”,当按下时,它将链接到所选单词的wikipedia页面。它可能是通过Safari实现的,或者我应该在带有webview的应用程序中实现这一点 我发现:Iphone 如何将自定义菜单项添加到UITextView菜单,该菜单是指向所选单词的Wikipedia页面的链接?,iphone,objective-c,ios6,wikipedia,uimenucontroller,Iphone,Objective C,Ios6,Wikipedia,Uimenucontroller,我是Xcode新手,我使用的是4.6.3版——Macbook对于新版本来说太旧了 我环顾了一下互联网和堆栈溢出,找不到我想要的东西,或者我无法让代码片段正常工作 我想在UITextView中长按单词时显示的菜单项中添加一个菜单项。我希望它说“Wiki”,当按下时,它将链接到所选单词的wikipedia页面。它可能是通过Safari实现的,或者我应该在带有webview的应用程序中实现这一点 我发现: UIMenuController *menuController = [UIMenuContro
UIMenuController *menuController = [UIMenuController sharedMenuController];
UIMenuItem *item1 = [[UIMenuItem alloc] initWithTitle:@"Do This" action:@selector(item1)];
[menuController setMenuItems:[NSArray arrayWithObject:item1]];
但这似乎没有任何作用
不幸的是,我无法理解检索wkipedia页面的建议,对不起,我没有那么先进。我通常不知道把代码片段放在哪里
我使用的UILabel更好地显示文本,矩形UITextView中的文本顶部有一个间隙,因此文本不居中,偏移UITextView参数意味着文本定位在顶部,而不是居中。将菜单附加到UILabel似乎非常困难。MyViewController.h
@interface MyViewController : UIViewController
// Linked textField from interface builder
@property (weak, nonatomic) IBOutlet UITextField *textField;
@end
MyViewController.m 在
viewDidLoad
方法中,将wiki按钮添加到UIMenuController
- (void)viewDidLoad
{
[super viewDidLoad];
// Add wiki button to UIMenuController
UIMenuController *menuController = [UIMenuController sharedMenuController];
UIMenuItem *wikiItem = [[UIMenuItem alloc] initWithTitle:@"Wiki" action:@selector(openWiki:)];
[menuController setMenuItems:[NSArray arrayWithObject:wikiItem]];
}
创建openWiki
方法:
- (void)openWiki:(id)sender {
if(![[_textField selectedTextRange] isEmpty]) {
// Url string
NSString *urlStr = [NSString stringWithFormat:@"http://en.wikipedia.org/wiki/%@",[_textField textInRange:[_textField selectedTextRange]]];
// Create url object
NSURL *myURL = [[NSURL alloc] initWithString:urlStr];
// Open url in safari
[[UIApplication sharedApplication] openURL:myURL];
}
}
就这样。谢谢你的及时回复,我真的很感激。现在该睡觉了,所以我会尽快尝试并告诉你。再次感谢。非常感谢,效果很好。这是多么好的服务啊。我很了不起。@user2963333不客气。如果回答了您的问题,请接受答案。:)