У меня есть рабочий .xib в Xcode 5. Главный виджет - UIWebView
. Виджет имеет правильное расположение, соединения и розетки.
Позже я создал категорию UIWebView (UIWebView + ReadOnlyPageContent), чтобы переопределить метод canPerformAction:withSender:
.
➥ Есть ли способ переназначить класс виджета категории?
В инспекторе идентичности Xcode> Пользовательский класс> Поле класса я вижу «UIWebView». Но текст затенен, и только «UIWebView» отображается во всплывающем меню.
В моем контроллере представления я попытался переопределить виджет UIWebView, исходя из этого:
IBOutlet UIWebView *webView; // Works.
в мою категорию с #import
категории:
IBOutlet UIWebView+ReadOnlyPageContent *webView; // Fails. 3 compiler errors.
В качестве альтернативы я рассматривал создание подкласса UIWebView. Но в документации говорится, что UIWebView не следует разделять на подклассы. Таким образом, использование категории - единственный способ переопределить метод canPerformAction:withSender:
.
- (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];
}