在iPhone中显示UIWebView中的自定义菜单

在iPhone中显示UIWebView中的自定义菜单,第1张

概述我想显示2个选项,如“hi”&当用户在UIWebView上完成选择时,“再见”。 我将观察者添加到我的视图控制器如下。但我不知道进一步的实施。请指导我 [[UIMenuController sharedMenuController] addObserver:self forKeyPath:UIMenuContro 我想显示2个选项,如“hi”&当用户在UIWebVIEw上完成选择时,“再见”。

我将观察者添加到我的视图控制器如下。但我不知道进一步的实施。请指导我

[[UIMenuController sharedMenuController] addobserver:self                                           forKeyPath:UIMenuControllerWillShowMenuNotification                                             options:nil                                             context:nil ];

提前感谢您分享您的知识。

萨加尔

解决方法 萨格尔,

你的问题是几个月了,但我终于想到了这一个,所以我想我会回答,以防万一有助于别人。

我将以下代码添加到包含WebvIEw的视图控制器的vIEwDIDAppear:方法中。

- (voID)vIEwDIDAppear:(BOol)animated {    [super vIEwDIDAppear:animated];    UIMenuItem *customMenuItem1 = [[[UIMenuItem alloc] initWithTitle:@"Custom 1" action:@selector(customAction1:)] autorelease];    UIMenuItem *customMenuItem2 = [[[UIMenuItem alloc] initWithTitle:@"Custom 2" action:@selector(customAction2:)] autorelease];    [[UIMenuController sharedMenuController] setMenuItems:[NSArray arrayWithObjects:customMenuItem1,customMenuItem2,nil]];}

在我看来,DIDdisappear :,我继续删除这些项目:

- (voID)vIEwDIDdisappear:(BOol)animated {    [super vIEwDIDdisappear:animated];    [[UIMenuController sharedMenuController] setMenuItems:nil];}

然后,我在视图控制器中实现了canPerformAction:withSender:方法。它有助于理解响应者和响应者链的概念,以了解这里发生了什么。基本上,您的uivIEw控制器是响应者链的一部分,因此会询问是否可以处理响应者链(如UIWebVIEw)的对象较高的任何 *** 作(如您上面添加的自定义 *** 作)不知道如何处理(见UIResponder documentation和Event Handling Guide for iOS的血清细节)。

现在,当CanPerformAction:withSender:被调用为webvIEw时,sender参数设置为nil。所以,我试着对我如何写这个功能有点聪明。基本上,我确保发件人为零,我向用户显示网络视图,页面上的任何其他控件不是第一个响应者。如果是这样,那么我检查一下这个是否是上面定义的一个动作,如果是的话,那么返回YES。在所有其他情况下,通过在super上调用相同的方法从UIVIEwController返回默认值。

- (BOol)canPerformAction:(SEL)action withSender:(ID)sender {    if (webVIEw.supervIEw != nil && ![urlTextFIEld isFirstResponder]) {        if (action == @selector(customAction1:) || action == @selector(customAction2:)) {            return YES;        }    }    return [super canPerformAction:action withSender:sender];}

当然,现在下一步是弄清楚如何真正地做一些选择(可能通过在webvIEw中运行一些JavaScript)。

总结

以上是内存溢出为你收集整理的在iPhone中显示UIWebView中的自定义菜单全部内容,希望文章能够帮你解决在iPhone中显示UIWebView中的自定义菜单所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1074170.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存