如何将自定义菜单项添加到 UITextView 菜单,这是指向所选单词的***页面的链接?
Posted
技术标签:
【中文标题】如何将自定义菜单项添加到 UITextView 菜单,这是指向所选单词的***页面的链接?【英文标题】:How to add custom menu item to UITextView menu, which is a link to the Wikipedia page of the selected word? 【发布时间】:2013-11-14 11:27:02 【问题描述】:我是 Xcode 的新手,我使用的是 4.6.3 版 - Macbook 对于新版本来说太旧了。
我浏览了互联网和 Stack Overflow,找不到我想要的,或者我无法让 sn-ps 工作。
我想在 UITextView 中长按单词时出现的菜单项中添加一个菜单项。我想让它说“Wiki”,当按下它时,它将链接到所选单词的***页面。可能是通过 Safari,还是我应该在应用程序中使用 web 视图执行此操作?
我找到了:
UIMenuController *menuController = [UIMenuController sharedMenuController];
UIMenuItem *item1 = [[UIMenuItem alloc] initWithTitle:@"Do This" action:@selector(item1)];
[menuController setMenuItems:[NSArray arrayWithObject:item1]];
但这似乎没有任何作用。
很遗憾,我无法理解有关检索***页面的建议,我没有那么先进,抱歉。我通常不知道将代码 sn-ps 放在哪里。
UILabel 我有更好的显示文本,矩形 UITextView 中的文本在顶部有一个间隙,因此文本没有居中,偏移 UITextview 参数意味着文本锚定在顶部,而不是居中。将菜单附加到 UILabel 似乎非常困难。
【问题讨论】:
【参考方案1】: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 不客气。如果它回答了您的问题,请接受答案。 :)以上是关于如何将自定义菜单项添加到 UITextView 菜单,这是指向所选单词的***页面的链接?的主要内容,如果未能解决你的问题,请参考以下文章
php WordPress类可以轻松地将自定义菜单项动态添加到菜单中。
在显示之前将动态自定义 UIMenuItem 添加到复制和粘贴菜单