2012-02-16 5 views
1

Я разрабатываю приложение, все работает нормально, за исключением того, что когда пользователь нажимает на дом, когда клавиатура активна, и снова открывается мое приложение, рамки кадра обзора меняются и выходят за границы. Мой ожидаемый результат: клавиатура должна быть приостановлена ​​или представление должно оставаться в том же положении, когда оно возвращается с фона на передний план с активным состоянием клавиатуры.Приостановка клавиатуры при нажатии на кнопку «домой»?

Я надеюсь, что люди поймут мой сценарий и ответят как можно скорее.

Спасибо.

ответ

1

Я нашел решение своего вопроса, я надеюсь, что люди смогут использовать мое решение. Ниже приведен код, который я сделал,

Добавьте приведенную ниже строку кода в свой файл RootViewController (т. Е. Какой вид открывается при открытии вашего APP).

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receivedNotification:) name:UIApplicationDidEnterBackgroundNotification object:nil]; 

А затем добавить частный метод, как показано ниже

- (void) receivedNotification:(NSNotification *) notification 
{ 
if ([username isFirstResponder]) 
{ 
    [username resignFirstResponder]; 
} 
else if ([password isFirstResponder]) 
{ 
    [password resignFirstResponder]; 
} 
} 

Я надеюсь, что это поможет некоторое тело, спасибо и.

Дальнейшей помощь смотрите указанную ссылку,

+1

change "- (void) receivedNotification: (NSNotification *) уведомление" с "- (void) applicationDidEnterBackground: (Приложение UIApplication *) "наблюдатель не нужен – valexa

1

есть метод в приложение делегата

- (void)applicationDidEnterBackground:(UIApplication *)application 

этот метод вызывается при нажатии кнопки домой. выполните необходимые изменения (textField resignFirstResponder) в этом методе, и он должен работать нормально, я думаю.

EDIT вот код

в классе, где у вас есть ваш TextField создать метод

-(void)performWhenHomeBtnprssed 
{ 
[MytextField resignFirstResponder]; 
} 

затем в

- (void)applicationDidEnterBackground:(UIApplication *)application 
{ 
    [myClassObj performWhenHomeBtnprssed]; 
} 

также я согласен с @valexa вы должны найти основная причина проблемы

+0

спасибо за ваше предложение и я знаю, что при нажатии кнопки пользователя нажмет домой пробеги на фон/передний план операцию, но, как подать в отставку текстового поля в этой методе, пожалуйста, вы можете дайте пример кода или фрагмента. –

0

В разработке программного обеспечения всегда лучше решать коренные причины, чем исправлять эффект, в вашем случае есть проблемы с позиционированием ваших представлений, и вы должны учитывать, что циклическое перемещение переднего плана/фона не должно влиять на позиционирование представлений.

+0

Как позиционировать представления, когда приложение переходит на задний план/передний план. Можете ли вы привести мне пример. Спасибо за ваше предложение. –

+0

правильно ™ ....... если они перемещаются в результате движения переднего плана/фона, то вы делаете что-то неправильно – valexa

Смежные вопросы