I have a working .xib in Xcode 5. The main widget is a UIWebView. The widget has its position, connections, and outlets all correctly arranged. 
Later I created a Category of UIWebView (UIWebView+ReadOnlyPageContent) to override the canPerformAction:withSender: method. 
➥ Is there a way to reassign the class of the widget to the category?
In Xcode's Identity inspector > Custom Class > Class field, I see "UIWebView". But the text is greyed out and only "UIWebView" is listed in the popup menu.

In my view controller I tried redefining the UIWebView widget, going from this:
 IBOutlet UIWebView *webView; // Works.
to my category, with an #import of the category:
 IBOutlet UIWebView+ReadOnlyPageContent *webView; // Fails. 3 compiler errors. 
As an alternative I had considered making a subclass of UIWebView. But the documentation says UIWebView should not be subclassed. So the use of a category is the only way I can think to override the canPerformAction:withSender: method.
- (BOOL)canPerformAction:(SEL)action
              withSender:(id)sender
{
    if (
        action == @selector(select:) ||
        action == @selector(copy:) ||
        action == @selector(cut:) ||
        action == @selector(paste:)
        )
    {
        return NO;
    }
    return [super canPerformAction:action withSender:sender];
}
 
     
    