我正在使用Cordova 2.2 for IOS构建PhoneGap应用程序。当我调用一个本地obj-c插件来显示MFMessageComposeViewController时,我遇到了一些奇怪的行为。当显示MFMessageComposeViewController时,键盘显示立即隐藏自身
设置非常简单 - 我有一个连接到UI元素的点击事件,当按下时,它会打电话给我的PhoneGap插件,传递一个数字和一条文本消息,然后显示MFMessageComposeViewController参数预先填充。
我的JavaScript看起来像这样:
$(document).bind('deviceready', function(){
$(".theButton").tap(function(){
cordova.exec(function(){}, function() {}, "PhoneGapSms", "SendSms", [db.getItem("profile_sms"), db.getItem("profile_emergency")]);
});
});
我的OBJ-C代码如下所示:
- (void)SendSms:(CDVInvokedUrlCommand*)command
{
CDVInvokedUrlCommand* myCommand = command;
MFMessageComposeViewController *picker = [[MFMessageComposeViewController alloc] init];
NSString* body = [command.arguments objectAtIndex:0];
NSString* toRecipientsString = [command.arguments objectAtIndex:1];
if(body != nil)
picker.body = body;
if(toRecipientsString != nil)
[picker setRecipients:[ toRecipientsString componentsSeparatedByString:@","]];
picker.messageComposeDelegate = self;
[self.viewController presentModalViewController:picker animated:YES];
[[UIApplication sharedApplication] setStatusBarHidden:YES];
[picker release];
}
所以,一切的一切,很简单的东西。
我的问题是这样的:
当我的iPhone是插到我的Mac和应用从XCode的运行,消息编写叠加出现很大,与预填充我的价值观。而插入的XCode下面展示的短信界面图像显示正常:当我的iPhone是拔离我的Mac,和应用程序从跳板运行
,覆盖滑,键盘开始向上滑动,然后立即滑落 - 使其无法键入或发送消息。这是什么样子的时候没有连接到Mac/Xcode中 - 键盘开始滑动了,然后马上滑下(〜< 1秒)离开如下界面:
我不能为我的生活找出了当不从XCode运行时会导致键盘隐藏的东西,但是当它工作的时候很好地工作。
有什么办法'强制'键盘显示,或可能把整个modalviewcontroller作为第一响应者在某种形式或时尚?
任何建议表示赞赏!
编辑:
如果在接触面积
@Evan试试这个答案并发表评论,如果有任何疑问..希望你得到它.. :) –
@Evan使用本教程的家伙?也只是改变流量从viewcontroller导航控制器伙计... –
我不认为他能够实例化一个MFMessageComposeViewController,如果他没有导入MessageUI框架... –