2012-08-03 25 views
6

Tôi đang làm việc trong ứng dụng iPhone bằng UITextView. Tôi muốn cho phép người dùng chỉ có thể Sao chép tin nhắn và Dán tin nhắn. Nhưng tôi không muốn hiển thị Chọn tất cả, Chọn, Xác định và những người khác. Tôi đang làm theo mã dưới đây để kiểm soát các tùy chọn. Tuy nhiên, tất cả các tùy chọn được hiển thị trong UITextView nhấp chuột.Cách kiểm soát Sao chép, Dán, Chọn tất cả, Xác định trong ứng dụng iPhone UITextView?

- (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]; 
} 

Bất kỳ ai cũng có thể giúp tôi thực hiện việc này. Và tôi cũng không muốn hiển thị |.Text.| trong khi sao chép thư. Xin hãy giúp tôi làm điều này. Cảm ơn trước.

Trả lời

2

Trước hết, nếu mã bạn có ở trên không hoạt động thì bạn có thể quên thay đổi lớp bạn UITextView thành lớp tùy chỉnh của bạn để thực hiện phương thức ở trên.

Khi bạn đã thực hiện những gì bạn đã có nên làm việc và sau đó bạn nên quay lại không cho chọn tất cả cũng

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

cũng có thể bạn muốn quay trở lại không cho cắt: cũng giả sử bạn không muốn người dùng xóa văn bản khỏi textView.

Ngoài những không cần phải có nếu báo cáo khác khi họ không phụ thuộc vào nhau

Họ đang thực sự được gọi theo thứ tự này

cắt: bản sao: chọn: SelectAll: dán: xóa:

Vì vậy, hãy xóa chức năng thích hợp.

+0

Cảm ơn câu trả lời của bạn. Bạn có thể vui lòng cho tôi biết để tắt màu xanh lam với hai dòng trong khi sao chép văn bản trong UITextView không? Cảm ơn bạn. – Gopinath

2

Tạo một lớp con của UITextField và ghi đè phương thức canPerformAction: withSender: trong lớp đó.

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


    return NO; 
} 
+0

Cả hai câu trả lời là chính xác và nhầm lẫn để chấp nhận. Nhưng anh ta trả lời trước rằng đó là lý do tại sao tôi chấp nhận câu trả lời của anh ấy. Đừng nhầm lẫn tôi. Cảm ơn câu trả lời của bạn. Bạn có thể vui lòng cho tôi biết để tắt màu xanh lam với hai dòng trong khi sao chép văn bản trong UITextView không? Cảm ơn bạn. – Gopinath