2012-08-03 83 views
6

我正在使用UITextView的iPhone應用程序中工作。我想只允許用戶複製留言並粘貼留言。但我不想顯示全選,選擇,定義和其他。我正在關注下面的代碼來控制選項。但是,所有的選項都顯示在UITextView點擊。如何在UITextView iPhone應用程序中控制複製,粘貼,全選,定義?

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender 
{ 
    if (action == @selector(paste:)) 
    { 
     return NO; 
    } 
    else if (action == @selector(copy:)) 
    { 
     return NO; 
    } 

    return [super canPerformAction:action withSender:sender]; 
} 

任何人都可以請幫助我這樣做。同時我也不想在複製郵件時顯示|.Text.|。請幫助我做到這一點。提前致謝。

回答

2

首先,如果上面的代碼不工作,那麼您可能忘記將您的UITextView的類更改爲實現上述方法的自定義類。

一旦你這樣做,你有什麼應該工作,你應該再回到沒有爲全選也

if (action == @selector(selectAll:)) 
     { 
      return NO; 
     } 

也可能要返回沒有用於切割:還假設你不希望用戶從textView中刪除文本。

此外,這些並不需要是如果else語句,因爲它們不依賴於彼此

他們實際上稱爲順序

切: 副本: 選擇: 全選: 粘貼: 刪除:

因此,刪除適當的功能。

+0

感謝您的回答。你能否告訴我在UITextView中複製文本時禁用兩行藍色?謝謝。 – Gopinath 2012-08-03 09:22:46

2

創建UITextField的子類並覆蓋方法canPerformAction:withSender:在該類中。

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender 
{ 
    if (action == @selector(paste:) ||action == @selector(copy:)) 
    { 
     return [super canPerformAction:action withSender:sender]; 
    } 


    return NO; 
} 
+0

這兩個答案都是正確的,並且很難接受。但他首先回答說爲什麼我接受了他的答案。別誤會我。感謝您的回答。你能否告訴我在UITextView中複製文本時禁用兩行藍色?謝謝。 – Gopinath 2012-08-03 09:23:45

相關問題