UIMenuController 須知
- 默認(rèn)情況下抄腔,有以下控件已經(jīng)支持UIMenuController
- UITextField
- UITextView
- UIWebView
讓其他控件也支持UIMenuController(比如UILabel)
/**
* 讓label可以成為第一響應(yīng)者
*/
- (BOOL)canBecomeFirstResponder
{
return YES;
}
/**
* label能只想哪個操作
*/
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
NSLog(@"%@", NSStringFromSelector(action));
if (action == @selector(cut:) || action == @selector(copy:) || action == @selector(paste:)) {
return YES;
}
return NO;
}
- (void)copy:(UIMenuController *)menu
{
/** 將自己的文字賦值到粘貼板 */
if (self.text.length > 0) {
UIPasteboard *board = [UIPasteboard generalPasteboard];
board.string = self.text;
}
}
- (void)cut:(UIMenuController *)menu
{
/** 將自己的文字賦值到粘貼板 */
[self copy:menu];
/** 清空文字 */
self.text = nil;
}
- (void)paste:(UIMenuController *)menu
{
/** 將粘貼板文字賦值到自己身上 */
UIPasteboard *board = [UIPasteboard generalPasteboard];
self.text = board.string;
}
- (void)labelClick
{
/** Label 要成為第一響應(yīng)者 (告訴我們menu支持什么操作, 如何處理)*/
[self becomeFirstResponder];
/** 顯示MenuController */
UIMenuController *menu = [UIMenuController sharedMenuController];
/** targetRect: 指向的矩形框 */
[menu setTargetRect:self.frame inView:self.superview];
[menu setMenuVisible:YES animated:YES];
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者