2012-02-16 159 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

更改「 - (void)receivedNotification:(NSNotification *)notification」with「 - (void)applicationDidEnterBackground: (UIApplication *)應用程序「觀察者是不必要的 – valexa 2012-02-16 21:43:45

1

沒有在應用程序委託

- (void)applicationDidEnterBackground:(UIApplication *)application 

當您按下home鍵這種方法燒製的方法。 在這個方法中做了必要的修改(textField resignFirstResponder),它應該可以正常工作,我猜。這裏

編輯是在你有你的文本字段創建一個方法

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

然後在

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

還我同意你應該找到@valexa類的代碼

問題的根本原因

+0

感謝你的建議,我也知道,當用戶按下home鍵的奔跑背景/前景操作,但如何辭職在這些方法中的文本字段,請你能給出一個示例代碼或代碼片斷。 – 2012-02-16 16:46:40

0

在軟件開發中,解決根本原因總是比修補效果更好,在您的情況下視圖定位存在問題,並且您應該解決這個問題,前景/後臺循環不應影響視圖定位。

+0

應用程序進入後臺/前臺時應如何定位視圖。你能否給我舉個例子。感謝您的建議。 – 2012-02-16 16:44:28

+0

正確™.......如果它們因前景/背景循環而重新定位,那麼您正在做出錯誤 – valexa 2012-02-16 21:39:54