整個應用程序的象征,一個應用程序就一個UIApplication對象,使用了單例設計模式,通過[UIApplication sharedApplication]訪問這個單例對象。
1> 整個應用程序的象征,一個應用程序就一個UIApplication對象,使用了單例設計模式
2> 通過[UIApplication sharedApplication]訪問這個單例對象
2.常見用法
1> 設置圖標右上角的紅色提示數字
app.applicationIconBadgeNumber = 10;
2> 設置狀態欄的樣式
app.statusBarStyle = UIStatusBarStyleBlackOpaque;
3> 控制狀態欄的顯示和隱藏
app.statusBarHidden = YES;
4> 顯示狀態欄上面的圈圈
app.networkActivityIndicatorVisible = YES;
5> 打開外部資源
// URL : 一個資源的唯一路徑
// URL的組成 == 協議頭://主機域名/路徑
// 網絡資源URL的組成 == http://www.baidu.com/1.png
// 本地文件資源URL的組成 == file:///Users/apple/Desktop/1.png
打開網頁
[app openURL:[NSURL URLWithString:@“http://www.baidu.com”]];打電話
[app openURL:[NSURL URLWithString:@“tel://10086”]];發短信
[app openURL:[NSURL URLWithString:@“sms://10086”]];6> 代理屬性(當應用程序發生了一些系統級別的事件,就會通知代理,交給代理去處理)
@property(nonatomic,assign) id delegate;
pragma mark 程序加載完畢(啟動完畢)就會調用一次
pragma mark 應用程序失去焦點的時候調用(一個app如果失去焦點,就不能跟用戶進行交互)
pragma mark 程序進入後台就會調用
pragma mark 程序即將進入前台的時候調用
pragma mark 應用程序獲得焦點的時候調用(一個app只有獲得焦點之後才能跟用戶進行交互)
pragma mark 程序即將被關閉的時候可能會被調用
pragma mark 程序接收到內存警告都會調用
1、狀態欄UIStateBar的設置是在UIApplication裡面設置的,它包含4中風格
2、 - (void)beginIgnoringInteractionEvents;
- (void)endIgnoringInteractionEvents;
- (BOOL)isIgnoringInteractionEvents;
這三種方法一般用於動畫開始和結束設置,讓動畫執行期間,用戶的其他觸摸事件暫時不去響應。這樣就不用弄遮罩層了,視圖上的其他控件就沒法響應了,等到動畫結束後才能響應。
3、@property(nonatomic,getter=isIdleTimerDisabled) BOOL idleTimerDisabled;
屬性:用來設置屏幕是否進入睡眠,默認是NO,即默認是會進入睡眠的,一般情況下只有游戲或者是一直需要用戶交互事件的才設置為YES,不讓它空閒的時候自動進入睡眠
4、networkActivityIndicatorVisible
屬性:設置網絡那個小菊花是否一直轉動,默認是NO,設置為YES後菊花一直轉動
5、@property(nonatomic) NSInteger applicationIconBadgeNumber; //設置應用圖標上的未讀數目,類似QQ上的未讀消息數目提醒
6、UIApplication是一個單例模式,整個app只有一個
7、canOpenUrl:(NSString*)url
此方法判斷能否打開一個url資源
openUrl:(NSString *)url
打開一個url資源,如果這個url是另外一個app的url,另外一個app將會啟動。url支持幾種類型:http,https,電話、視頻聊天、email
8、- (void)sendEvent:(UIEvent *)event
任何事件都可以在這裡被截獲
9、@property(nonatomic,readonly) NSArray *windows;跟keywindow
剛開始看了覺得很奇怪,不是說一個應用只有一個窗口嗎?干嘛還弄個數組,結果一測試才知道輸出來以後,除了window還有UITextEffetsWindow。網上查了keywindow是指當前活躍的window,與用戶交互的window。而windows是指當前app打開的所有window,比如鍵盤也在一個window裡面,alert也在一個window裡面。在windows數組裡面,window是根據windowLevel來排列的,最後一個覆蓋在最上面。這裡的windows數組不包括系統提供的window,比如說狀態欄就是在一個系統創建的window裡面
注意:keyWindow不是一成不變的,當你創建alertView或者ActionSheet的時候,它們所在的window會變成keyWindow。也就是說系統默認創建的window首先變成keywindow,而當彈框的時候,alertView所在的window變成keywindow,默認的keywindow變成非keywindow。