2012-12-25 85 views
2

此代碼在appDelegate讓我的應用程序表現奇怪「UIWindowLevelStatusBar + 1」奇怪的鍵盤行爲

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window.windowLevel = UIWindowLevelStatusBar + 1; 
    return YES; 
} 

當從功能[myTextView resignFirstResponder]我得到我的鍵盤視角下消失,不會往下滑隱藏鍵盤正如它應該。

改變這種情況的最好方法是什麼?爲什麼UIWindowLevelStatusBar + 1搞亂了所有的應用程序結構?

編輯:

我試圖做的是建立在statusBar的頂視圖。在appDelegate中設置UIWindowLevelStatusBar + 1是否是錯誤的方法?

回答

1

鍵盤還存在於一個窗口中(屏幕上的所有內容都是這樣),並且該窗口的水平低於窗口的水平。

你爲什麼要把你的窗戶設置得這麼高?如果您告訴我們您要完成的任務,我們可能會提出一種替代方法。

+0

看看我的編輯。也許我們可以以某種方式將鍵盤放在更高的層面上? –

+0

但是*爲什麼*你想要這樣做?這裏的實際目標是什麼? –

+0

創建一個可以覆蓋狀態欄的視圖,以便在保持正常的鍵盤滑動/消失行爲的同時在其上顯示某些內容。 –

0

隱藏狀態欄並簡單地設置導航欄的框架。

CGRect statusFrame = [UIApplication sharedApplication].statusBarFrame; 
[[UIApplication sharedApplication] setStatusBarHidden:YES]; 
self.navigationController.navigationBar.frame = CGRectMake(0, statusFrame.size.height, 320,46); 
[[AppDelegate instance].window addSubview:statusView]; 
2

的人,我知道這是2歲多,但這裏有雲:

在iOS 7和8部作品,而不是9周的beta測試。

我在狀態欄添加了一個代碼。是的,我知道蘋果不喜歡它,但用戶可以選擇在其他地方使用它。

在應用程序的委託,當你想隱藏狀態欄(載體,小時,電池)的內容,您撥打:

self.window.windowLevel = UIWindowLevelStatusBar+1; 

問題是要弄清楚如何取回內容,對吧?那也是我的問題。那就是:

self.window.windowLevel = UIWindowLevelStatusBar-1; 

再見