UIMenuController

Snip20160613_2.png

UIMenuController 須知

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

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

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

/**
 * label能只想哪個(gè)操作
 */
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
    NSLog(@"%@", NSStringFromSelector(action));
    
    if (action == @selector(cut:) || action == @selector(copy:) || action == @selector(paste:)) {
        return YES;
    }
    
    return NO;
}

  • 實(shí)現(xiàn)操作方法
- (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;
}

  • 顯示MenuController
- (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)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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