我是Xcode的新手,我使用的是版本4.6.3 - Macbook对于新版本而言太旧了。
我环顾互联网和Stack Overflow,无法找到我想要的内容,或者我无法获得片段。
我想在UITextView中长按单词时出现的菜单项中添加一个菜单项。我希望它说“Wiki”,当按下它时,它将链接到所选单词的维基百科页面。它可能是通过Safari,还是我应该在带有webview的应用程序中执行此操作?
我找到了:
UIMenuController *menuController = [UIMenuController sharedMenuController];
UIMenuItem *item1 = [[UIMenuItem alloc] initWithTitle:@"Do This" action:@selector(item1)];
[menuController setMenuItems:[NSArray arrayWithObject:item1]];
但这似乎没有做任何事情。
不幸的是我无法理解检索wikipedia页面的建议,我不是那么高级,对不起。我通常不知道在哪里放置代码片段。
UILabel我已经更好地显示了文本,矩形UITextView中的文本在顶部有一个间隙,因此文本不居中,偏移UITextview参数意味着文本锚定在顶部,而不是集中。将菜单附加到UILabel似乎非常困难。
答案 0 :(得分:16)
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];
}
}
就是这样。