UITextView自定文字选择后菜单

好吧,总算开始开发IOS的APP了。到处搜索,到处搜索,终于有些资料派上用场。不过很遗憾,很多资料是Stackoverflow上面搜到的。这对于英文水的哥们可是大难题,关键都没办法想得出来,怎么搜出资料呢?我也写一些这一段学习的零零碎碎的东西吧,网上一搜就能搜到的哥就不写了,不过高手还是匆笑啊!

今天给大家说说UITextView的长按或双击后有选择文字,然后会跳出一个菜单,上面有一些选项,如果是只读的默认只有“复制”选项,可编辑的情况下可能会多几个。那么如果自定义这个弹出菜单呢?哥搜索到cocoachina和devdiv上都有人提问,却没有人回答,后来使用UITextView+longpress关键字在stackoverflow上搜到的,先上个截图,再给个解决方案吧!

界面设计就不说了吧,拖个TextView,不过我这个设为只读的了。实现部分上代码:

首先在viewDidLoad方法中添加UIMenuItem:

UIMenuItem *menuItem = [[UIMenuItem alloc]initWithTitle:@"分享到新浪微博" action:@selector(changeColor:)];
UIMenuController
*menu = [UIMenuController sharedMenuController];
[menu setMenuItems:[NSArray arrayWithObject:menuItem]];
[menuItem release];

当然上面那个@selector里面的changeColor方法还是自己写吧,也就是说点击了我们自定义的菜单项后会触发的方法。

然后还得在代码里加上一个方法:

-(BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
if(action == @selector(changeColor:))
{
if(textView.selectedRange.length>0)
return YES;
}
return NO;
}

OK,搞定啦!!

哦,忘了,在.h文件中在继承了

UIViewController之后还要加上<UITextViewDelegate>。希望能帮到大家哦!

转载请注明来自博客园,作者:jauntlin

posted @ 2011-06-12 22:14  jauntlin  阅读(2791)  评论(1编辑  收藏  举报