0

iOS开发:应用程序设置 Settings Bundle

 2 years ago
source link: https://www.isaced.com/post-182.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

iOS开发:应用程序设置 Settings Bundle

好久没写写了,今天来记录下ios开发中的应用程序设置,本来项目就把设置面板计划进去了的,最初是想用一个plist自己读、取达到设置功能。后来看到了ios有专用的用于设置的东东,那就是Settings。

Settings Bundle

ios的设置用到了Settings Bundle,它严格来说是一个包,里面有用于设置的plist文件,可能还有些其他资源文件。

ios的应用程序的设置面板大致分为两种,一种是在公共的设置里,增加一项你的App的设置选项,这种有点类似与Windows的控制面板,另外一种就是自己程序中自己构建设置面板,这种就稍繁琐,需要自己构建UI,写读写项。

不过还好的是,ios提供了一个NSUserDefaults类,专门用于读写Settings Bundle,这样无论是自己构建设置或用公共设置面板就非常简单了。

在CSDN上一个blog上看到下面一个表格,列出了Settings可用的控件:

| 设置控件 | 类型| | —————-| |文本框| PSTextFieldSpecifier| |文字| PSTitleValueSpecifier| |开关控件| PSToggleSwitchSpecifier| |Slider| PSSliderSpecifier| |Multivalue| PSMultiValueSpecifier| |Group| PSGroupSpecifier| |子面板| PSChildPaneSpecifier.|

Settings Bundle的plist文件是以XML的形式储存的。

注:第二次编辑此文在11.26,更改标题把Settings改为Settings Bundle,感觉更为合适。

今天使劲看了下本章的所谓<实现逼真效果>一节,主要就是在原有的程序上添加了一个通知,单纯的理解有点类似Windows程序里的消息(Message),通知是ios提供的,当发送给APP的时候,APP作出适当的响应。

这里用到了[UIApplicationWillEnterForegroundNotification]这个通知,意思是当应用程序进入前台。

小贴一段代码:

UIApplication *app [UIApplication sharedApplication];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationWillEnterForeground:) name:UIApplicationWillEnterForegroundNotification object:app];

这段代码摘自《iOS 5 基础教程》 ,第12章中所提到的订阅通知,也是很重要的一个函数。

这个方法听到老师很好的用一句话解释:当app应用程序接收到[UIApplicationWillEnterForegroundNotification]这个通知时,在self类里面,触发执行applicationWillEnterForeground方法。

这里一共4个参数,下面一一解释:

addObserver:添加一个观察者,这里传递self,一个控制器类,是将要被通知的对象。

selector:选取一个方法,当接受到通知时触发。

name:通知名称,XCode给的。

object:从哪个对象中获取通知,如为nil,则任何方法,任何时候发布通知时都将会被接收。

  1. 在构建Root.plist的时候必须要为你的设置项设定[Key]是必须设定的,也用于代码中读写项,不给个值会无法显示,无法使用。
  2. 右键菜单中有一项[Show Raw Keys/Values],可以“更专业”地显示各选项

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK