UIMenuController的示例

UIMenuController須知

  • 默認(rèn)情況下, 有以下控件已經(jīng)支持UIMenuController
    • UITextField
    • UITextView
    • UIWebView

讓其他控件也支持UIMenuController(比如UILabel)

  • 自定義UILabel
  • 重寫2個方法
/**
 * 讓label有資格成為第一響應(yīng)者
 */
- (BOOL)canBecomeFirstResponder
{
    return YES;
}

/**
 * label能執(zhí)行哪些操作(比如copy, paste等等)
 * @return  YES:支持這種操作
 */
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
    if (action == @selector(cut:) || action == @selector(copy:) || action == @selector(paste:)) return YES;

    return NO;
}
  • 實(shí)現(xiàn)各種操作方法
- (void)cut:(UIMenuController *)menu
{
    // 將自己的文字復(fù)制到粘貼板
    [self copy:menu];

    // 清空文字
    self.text = nil;
}

- (void)copy:(UIMenuController *)menu
{
    // 將自己的文字復(fù)制到粘貼板
    UIPasteboard *board = [UIPasteboard generalPasteboard];
    board.string = self.text;
}

- (void)paste:(UIMenuController *)menu
{
    // 將粘貼板的文字 復(fù)制 到自己身上
    UIPasteboard *board = [UIPasteboard generalPasteboard];
    self.text = board.string;
}
  • 讓label成為第一響應(yīng)者
// 這里的self是label
[self becomeFirstResponder];
  • 顯示UIMenuController
UIMenuController *menu = [UIMenuController sharedMenuController];
// targetRect: MenuController需要指向的矩形框
// targetView: targetRect會以targetView的左上角為坐標(biāo)原點(diǎn)
[menu setTargetRect:self.bounds inView:self];
// [menu setTargetRect:self.frame inView:self.superview];
[menu setMenuVisible:YES animated:YES];

自定義UIMenuController內(nèi)部的Item

  • 添加item
// 添加MenuItem(點(diǎn)擊item, 默認(rèn)會調(diào)用控制器的方法)
UIMenuItem *ding = [[UIMenuItem alloc] initWithTitle:@"頂" action:@selector(ding:)];
UIMenuItem *replay = [[UIMenuItem alloc] initWithTitle:@"回復(fù)" action:@selector(replay:)];
UIMenuItem *report = [[UIMenuItem alloc] initWithTitle:@"舉報" action:@selector(report:)];
menu.menuItems = @[ding, replay, report];
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • UIMenuController的示例 UIMenuController須知 - 默認(rèn)情況下, 有以下控件已經(jīng)支持...
    Hevin_Chen閱讀 407評論 0 0
  • UIMenuController須知 默認(rèn)情況下, 有以下控件已經(jīng)支持UIMenuControllerUIText...
    Barry_小閃閱讀 555評論 0 1
  • 很久沒看詩了。 因?yàn)闆]用。 理所應(yīng)當(dāng)。 時下一天接觸的信息成千上萬,能夠處理的卻不過區(qū)區(qū)近百。為了節(jié)約時間,凡是干...
    花寐的貓豬閱讀 160評論 0 0
  • 這段日子,老公工作很忙,好多周末都沒有休息了。今天好容易休息一天,大清早,我們夫妻雙雙去遛彎! 夏日的清晨正是外出...
    阿布的慢時光閱讀 507評論 0 3
  • 拳鄉(xiāng)覓高師 趙堡鎮(zhèn)是距陳家溝僅有五里之遙的普通中原小鎮(zhèn),下車后,在當(dāng)?shù)乩相l(xiāng)的指點(diǎn)下,我沿著一條崎嶇不平的小路直奔陳...
    新春天閱讀 865評論 0 1

友情鏈接更多精彩內(nèi)容