Я создаю приложение PhoneGap с использованием Cordova 2.2 для IOS. Я сталкиваюсь с каким-то странным поведением при вызове плагина obj-c, который я написал, чтобы показать MFMessageComposeViewController.
Настройка очень проста - у меня есть событие крана, прикрепленное к элементу пользовательского интерфейса, которое при нажатии вызывает вызов моего плагина 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, наложение Message Composer выглядит великолепно, мои значения предварительно заполнены. На рисунке ниже показано, что интерфейс SMS отображается нормально, когда подключен к XCode:
Когда мой iPhone отключен от моего Mac, а приложение запускается с панели spring, наложение слайдов вверх, клавиатура начинает скользить вверх, , а затем сразу переходит вниз - невозможность ввода или отправки сообщения. Это то, на что похоже, когда он не привязан к Mac/Xcode - клавиатура начинает скользить вверх, а затем сразу сдвигается вниз (~ < 1 с), оставляя следующий интерфейс:
Я не могу на всю жизнь понять, что может заставить клавиатуру скрыть, когда она не работает из XCode, но отлично работает, когда она есть.
Есть ли способ "заставить" клавиатуру отображать или, возможно, поставить весь modalviewcontroller в качестве первого ответчика в какой-либо форме или моде?
Любые предложения приветствуются!
Edit:
Клавиатура снова появится, если вы нажмете в области контакта