2012-11-07 3 views
0

프로토콜 구현으로 사용하는 모든 개체의 메서드를 바꿀 수 있습니까? 있는 UIWebView에 팝업 메뉴 "를 선택, 모두 선택" "잘라 내기, 복사, 붙여 넣기"를 비활성화 할 수 :프로토콜 구현으로 사용하는 모든 개체의 메서드를 바꿀 수 있습니까?

- (BOOL)myCanPerformAction:(SEL)action withSender:(id)sender { 
    return NO; 
} 

초기 문제 :

방법은 canPerformAction:(SEL)action withSender:(id)sender입니다. 어떤 이상한 객체는 canPerformAction 메소드로 그것을 생성합니다. 그리고이 클래스의 메서드 만 바꾸려면이 개체를 찾을 수 없습니다.

도움을 받으시 길 바랍니다. 오랫동안이 문제를 해결할 수 없습니다. 선택을 해제하는 다른 모든 방법은 내 페이지에서 사용자 입력을 비활성화합니다. 그리고 난 단지 canPerformAction 올바른 방법이나 모든 클래스를 대체 할 수 있습니다.

답변

0

NSObject 클래스의 카테고리를 만들고 해당 메서드를 swizzle하십시오.

@interface NSObject (myCanPerformAction) 

- (BOOL)myCanPerformAction:(SEL)action withSender:(id)sender; 

@end