1

UIWebView同意我允许在运行时进行编辑。

现在当我点击UIWebView然后 iPad 键盘打开写,现在我的要求是如何检测我点击了 iPad 键盘的回车键?

我知道如果我们正在编辑UITextViewUITextField使用它的代表,我们可以实现这一点。帮助我!

我在 javascript 中有一个函数可以检测到它。

function returnEnterPress(e){
    var key;     
     if(window.event)
          key = window.event.keyCode; //IE
     else
          key = e.which; //firefox     
          // ENTER KEY MUNBER IS 13 // KD
     if(key == 13)
     {
        //alert('enter');
     }
     return false;
}

现在我可以使用objective-c代码调用它并且可以获得像true或false这样的返回值吗?

4

4 回答 4

1

我用这样的javascript完成了我的工作......

在 HTML 文件中

function returnEnterPress(e){
     var key;     
     if(window.event)
          key = window.event.keyCode; //IE
     else
          key = e.which; //firefox     
          // ENTER KEY MUNBER IS 13 // KD
     if(key == 13)
     {
        window.location.href = 'enterClicked/0';
     }
     else
     {
         var range = window.getSelection().getRangeAt(0).endOffset;
         if(range == 0)
         {
            window.location.href = 'enterClicked/'+range;
         }
     }
     return true;
}

<body onKeyPress="return returnEnterPress(event)">

在我的 Objective-c 代码中

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{

    if([[[request URL] absoluteString] rangeOfString:@"enterClicked"].location!=NSNotFound)    // When "enterClicked" found
    {
        //Do your desired work
        return NO;
    }
}
于 2012-09-19T05:22:52.767 回答
0

您可能可以使用某种 Javascript 来解决这个问题,但我只会使用表单/提交按钮。

于 2012-09-18T11:59:44.190 回答
0

使用一些键盘通知。我使用以下代码来检测键盘将要隐藏

- (void)viewDidLoad
{
    [super viewDidLoad];
    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(nothing)    name:UIKeyboardWillHideNotification object:nil];
}
-(void)nothing
{
     NSLog(@"do Whatever u want");
}

试试看。,。

于 2012-09-18T11:57:04.163 回答
0

我认为没有公共 API 可以处理该级别的键盘。这是一项相当大的努力(因为国际键盘),但一种选择是收听UIKeyboardWillShow通知并用透明UIView的 s 覆盖您想要收听的按钮的键盘。您可以捕获触摸,然后将其传递给下面的视图(键盘)并让它做它的事情。

您甚至可以覆盖(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event;透明按钮。所以你捕捉到了它被触摸但无论如何都返回的事实,NO以便键盘得到触摸。

然后困难在于知道每个键的位置,具体取决于您需要支持的键盘类型。

于 2012-09-18T11:39:42.723 回答