我在UIWebView
,因为我允许在运行时进行编辑。
现在,当我点击UIWebView
时,iPad键盘会打开以进行书写,
现在我的要求是如何检测我点击了iPad键盘的输入键?。
我知道如果我们使用代理人在UITextView
或UITextField
进行编辑,我们就可以实现这一目标。帮助我!
我在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的返回值吗?
答案 0 :(得分: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;
}
}
答案 1 :(得分:0)
我认为在该级别处理键盘时没有公共API。这是一项非常大的工作(因为国际键盘),但一种选择是收听UIKeyboardWillShow
通知,并使用透明UIView
覆盖键盘,以便您想要收听的按钮。你可以捕捉到触摸,然后将其传递给下面的视图(键盘)并让它做它的事情。
您甚至可以在透明按钮中覆盖(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event;
。因此,您可以捕获触摸但返回NO
的事实,以便键盘触摸。
然后很难知道每个键的位置,具体取决于您需要支持的键盘类型。
答案 2 :(得分:0)
使用一些键盘通知。我用以下代码检测键盘是否会隐藏
- (void)viewDidLoad
{
[super viewDidLoad];
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(nothing) name:UIKeyboardWillHideNotification object:nil];
}
-(void)nothing
{
NSLog(@"do Whatever u want");
}
试试吧。,
答案 3 :(得分:0)
您可以使用某种Javascript来解决这个问题,但我只想使用表单/提交按钮。