1

私はUIWebView実行時に編集を許可しているという点でオンになっています。

クリックするUIWebViewとiPadキーボードが開いて書き込みができるようになりました。要件は、iPadキーボードのEnterキーをクリックしたことを検出する方法です。

デリゲートを使用して編集しているUITextView場合、これを達成できることを私は知っています。助けてください!UITextField

それを検出するJavaScriptの関数が1つあります。

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

そのレベルでキーボードを処理するためのパブリックAPIはないと思います。これは(国際的なキーボードのために)非常に大きな労力ですが、1つのオプションは、通知を聞いて、聞きたいボタンのUIKeyboardWillShow透明なキーボードをキーボードにオーバーレイすることです。UIViewタッチをキャプチャして、それを下のビュー(キーボード)に渡して、その機能を実行させることができます。

(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event;透明なボタンで上書きすることもできます。つまり、タッチされたという事実をキャプチャしますが、NOとにかくキーボードがタッチされるように戻ります。

難しいのは、サポートする必要のあるキーボードの種類に応じて、各キーがどこにあるかを知ることです。

于 2012-09-18T11:39:42.723 に答える
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

ある種のJavascriptを使用してそれを理解できるかもしれませんが、私はフォーム/送信ボタンを使用します。

于 2012-09-18T11:59:44.190 に答える