iOS 7 — расширенное меню UIWebView

Я хочу добавить дополнительный пункт меню для меню, которое появляется при выборе текста.

Я добавил код ниже в viewDidLoad:

NSMutableArray *extraItems = [[NSMutableArray alloc] init];
UIMenuItem *boldItem = [[UIMenuItem alloc] initWithTitle:@"Bold"
                                                      action:@selector(bold:)];
[extraItems addObject:boldItem];

[UIMenuController sharedMenuController].menuItems = extraItems;

Я также перезаписал свой собственный UIWebView следующими методами:

- (void)bold:(id)sender {

}

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

Поэтому иногда, когда я выделяю текст, меню успокаивается, а иногда нет. Я не знаю, в чем проблема.


person Matrosov Alexander    schedule 17.02.2014    source источник


Ответы (1)


Ваш массив «extraItems» должен быть NSArray, а не NSMutableArray, поэтому ваши первые три строки, которые вы добавили в viewDidLoad, должны быть заменены на:

UIMenuItem* extraItem = [[UIMenuItem alloc] initWithTitle:@"Bold" action:@selector(bold:)]; NSArray* extraItems = [NSArray arrayWithObject:extraItem];

Затем добавьте эту версию массива extraItems в SharedMenuController точно так же, как вы это сделали.

person StayCalm    schedule 24.01.2015