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];
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;
}
{
if(action == @selector(changeColor:))
{
if(textView.selectedRange.length>0)
return YES;
}
return NO;
}
OK,搞定啦!!
哦,忘了,在.h文件中在继承了
UIViewController之后还要加上<UITextViewDelegate>。希望能帮到大家哦!
转载请注明来自博客园,作者:jauntlin