Iphone 如何将自定义菜单项添加到UITextView菜单,该菜单是指向所选单词的Wikipedia页面的链接?

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

我是Xcode新手,我使用的是4.6.3版——Macbook对于新版本来说太旧了

我环顾了一下互联网和堆栈溢出,找不到我想要的东西,或者我无法让代码片段正常工作

我想在UITextView中长按单词时显示的菜单项中添加一个菜单项。我希望它说“Wiki”,当按下时,它将链接到所选单词的wikipedia页面。它可能是通过Safari实现的,或者我应该在带有webview的应用程序中实现这一点

我发现:

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不客气。如果回答了您的问题,请接受答案。:)