图书介绍
macOS应用开发基础教程【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

- 赵君卫,张帆著 著
- 出版社: 北京:人民邮电出版社
- ISBN:9787115486400
- 出版时间:2018
- 标注页数:586页
- 文件大小:43MB
- 文件页数:604页
- 主题词:软件开发-教材
PDF下载
下载说明
macOS应用开发基础教程PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 准备工作1
1.1 Mac电脑1
1.2 Xcode使用介绍1
1.2.1 Xcode工作区2
1.2.2 xib界面设计相关的工作区和菜单3
1.3 工程结构5
1.3.1 使用xib方式创建的工程5
1.3.2 使用storyboard方式创建的工程11
第2章 窗口对象13
2.1 窗口界面的组成14
2.2 模态窗口16
2.2.1 模态窗口16
2.2.2 模态会话窗口16
2.3 编程控制窗口17
2.3.1 创建窗口对象17
2.3.2 窗口通知18
2.3.3 NSWindow的contentView18
2.3.4 设置窗口的image和titl19
2.3.5 设置窗口的背景颜色19
2.3.6 关闭窗口时终止应用19
2.3.7 在窗口标题区域增加视图20
2.3.8 NSWindow如何正确地保证居中显示21
2.3.9 窗口显示位置控制21
2.3.10 应用关闭后点击Dock菜单再次打开应用21
2.4 窗口的创建和管理21
第3章 视图和滚动条23
3.1 基本视图23
3.1.1 坐标系统23
3.1.2 frame和bounds24
3.1.3 坐标转换25
3.1.4 视图管理25
3.1.5 视图查找25
3.1.6 视图的autoSize控制25
3.1.7 视图的layer属性27
3.1.8 视图绘制27
3.1.9 事件响应28
3.1.10 视图的frame/bounds变化通知28
3.2 增效视图29
3.3 滚动条视图31
3.3.1 滚动条视图工作原理31
3.3.2 用代码创建滚动条视图32
3.3.3 滚动到指定的位置32
3.3.4 用代码实现文本视图滚动的示例33
3.3.5 滚动条的显示控制34
第4章 基本控件35
4.1 控件的分类35
4.2 控件家族类图谱35
4.2.1 NSResponder37
4.2.2 NSView38
4.2.3 NSControl38
4.2.4 NSCell38
4.2.5 小结39
4.3 文本框39
4.3.1 UI属性说明40
4.3.2 事件响应40
4.3.3 文本内容的读取或修改41
4.3.4 特殊按键响应处理41
4.4 文本视图42
4.4.1 UI属性说明42
4.4.2 事件响应43
4.4.3 文本的格式化显示43
4.4.4 文本框高度根据文字高度自适应增长44
4.5 文本搜索框44
4.6 文本标签46
4.6.1 UI属性说明46
4.6.2 用代码创建文本标签46
4.7 按钮48
4.7.1 UI属性说明48
4.7.2 事件响应48
4.7.3 连接事件49
4.7.4 用代码创建按钮49
4.7.5 图片按钮的创建49
4.8 复选框50
4.8.1 UI属性说明51
4.8.2 事件响应51
4.9 单选按钮51
4.9.1 UI属性说明51
4.9.2 事件响应52
4.10 分段选择控件52
4.10.1 UI属性说明53
4.10.2 事件响应53
4.10.3 分段大小的控制53
4.10.4 分段样式风格的控制53
4.11 组合框54
4.11.1 UI属性说明54
4.11.2 事件响应55
4.11.3 动态增加列表内容55
4.11.4 使用数据源和代理55
4.12 弹出式按钮56
4.12.1 UI属性说明56
4.12.2 动态列表项配置56
4.12.3 事件响应57
4.13 滑杆57
4.13.1 属性设置57
4.13.2 水平和垂直方向设置57
4.13.3 事件绑定58
4.14 日期选择器58
4.14.1 UI属性说明58
4.14.2 获取日期59
4.14.3 日期变化的事件59
4.15 步进器59
4.15.1 UI属性说明60
4.15.2 事件响应60
4.15.3 文本框数据与步进器保持同步60
4.16 进度指示器60
4.16.1 UI属性说明61
4.16.2 启动指示器动画61
4.16.3 更新指示器进度61
4.16.4 停止指示器动画61
4.16.5 用代码创建进度指示器62
4.17 图像视图62
4.17.1 UI属性说明62
4.17.2 圆角处理62
4.18 分组框63
4.18.1 UI属性说明63
4.18.2 用代码创建分组框63
4.19 分栏视图64
4.19.1 重要属性和方法说明64
4.19.2 用代码创建分栏视图65
4.19.3 自定义分栏视图样式风格65
4.19.4 分栏视图中的子视图控制66
4.19.5 分栏视图子视图的隐藏和显示68
4.20 集合视图68
4.20.1 集合视图的content69
4.20.2 NSCollectionViewItem69
4.20.3 绑定模型到视图70
4.20.4 使用数据源方式管理集合视图71
4.20.5 实现集合视图的高亮选择73
4.20.6 集合视图的背景设置75
4.20.7 集合视图的布局管理器75
4.20.8 设置集合视图的顶部头和底部尾77
4.20.9 用代码创建集合视图79
4.21 选项卡视图79
4.21.1 UI属性说明80
4.21.2 代理协议NSTabViewDelegate80
4.21.3 动态增加选项卡80
4.21.4 用无边风格的选项卡进行切换控制81
4.22 弹出式气泡82
4.22.1 重要属性82
4.22.2 使用示例83
第5章 面板和警告框84
5.1 面板84
5.1.1 UI属性说明85
5.1.2 显示面板85
5.1.3 隐藏面板86
5.1.4 文件打开面板86
5.1.5 文件保存面板88
5.1.6 颜色选择面板88
5.1.7 字体选择面板89
5.2 警告框89
5.2.1 UI属性说明89
5.2.2 添加按钮90
5.2.3 使用示例90
5.3 使用独立的xib文件创建面板类91
第6章 工具栏和菜单94
6.1 工具栏94
6.1.1 创建工具栏94
6.1.2 UI属性说明95
6.1.3 NSToolbarItem的属性说明96
6.1.4 事件响应96
6.1.5 创建非标准的工具栏项97
6.1.6 验证工具栏项97
6.1.7 用代码创建工具栏98
6.1.8 工具栏与窗口控制按钮融合显示99
6.2 菜单99
6.2.1 UI属性说明100
6.2.2 增加菜单101
6.2.3 弹出式菜单101
6.2.4 设置上下文菜单102
6.2.5 Dock菜单102
6.2.6 用代码创建菜单103
6.2.7 获取应用默认的菜单104
6.2.8 菜单有效性验证104
6.3 状态条105
6.3.1 NSStatusBar类的对象关系105
6.3.2 NSStatusBar的使用方式105
6.3.3 状态条增加弹出视图107
第7章 表视图109
7.1 表视图109
7.1.1 使用xib创建表格109
7.1.2 表格样式设置112
7.1.3 表格数据显示配置112
7.1.4 表格事件119
7.1.5 创建表格上下文菜单120
7.1.6 数据排序120
7.1.7 数据拖放121
7.1.8 表格数据获取121
7.1.9 编辑表格内容121
7.1.10 动态增加/删除表格行122
7.1.11 用代码创建表格123
7.1.12 代码控制选中行125
7.1.13 表格行选中颜色定制126
7.2 大纲视图控件126
7.2.1 节点模型定义127
7.2.2 初始化模型数据128
7.2.3 实现数据源协议128
7.2.4 实现代理方法,绑定数据到节点视图129
7.2.5 节点选择的变化事件通知129
7.2.6 动态增加节点130
7.2.7 动态删除节点130
7.2.8 代码控制行的展开和选中131
7.2.9 修改节点展开关闭的默认图标132
7.2.10 鼠标右键上下文菜单133
第8章 自动布局134
8.1 自动布局的原理134
8.1.1 传统的布局134
8.1.2 自动布局135
8.2 栈视图137
8.3 Xcode中的自动布局设置138
8.3.1 Stack139
8.3.2 Align140
8.3.3 Pin140
8.3.4 Resolve141
8.4 自动布局的多种解决方案141
8.4.1 一个问题的多种解决方案142
8.4.2 约束选择的原则和建议144
8.5 自动布局使用示例144
8.5.1 两个视图大小相同144
8.5.2 3个View大小相同145
8.5.3 文本标签和输入框145
8.5.4 文本标签动态字体和输入框146
8.5.5 多行文本标签和输入框146
8.5.6 多行文本标签动态字体和输入框147
8.5.7 两个视图大小相同、水平方向的间距相同148
8.5.8 简单的Stack View149
8.5.9 复杂界面未使用栈视图150
8.5.10 复杂界面使用多个嵌套栈视图151
8.6 滚动条视图使用自动布局151
8.7 通过代码设置自动布局约束153
8.7.1 使用NSLayoutConstraint类153
8.7.2 使用NSLayoutAnchor155
8.7.3 使用VFL定义约束关系155
8.7.4 使用第三方库AutoLayoutX155
第9章 窗口控制器157
9.1 xib中窗口的加载创建过程157
9.2 手工创建窗口需要注意的问题160
9.3 窗口控制器和窗口的关系161
9.4 将AppDelegate中窗口的管理功能分离161
9.5 窗口切换后对象失去焦点问题163
第10章 视图控制器164
10.1 视图控制器164
10.1.1 视图生命周期过程165
10.1.2 创建视图控制器的3种方式166
10.1.3 representedObject属性167
10.1.4 子视图控制器管理168
10.1.5 两个视图控制器之间的切换方法169
10.1.6 Storyboard中的视图控制172
10.1.7 视图中手势识别174
10.2 选项卡控制器175
10.2.1 使用NSTabView创建选项卡视图175
10.2.2 使用NSTabViewController管理选项卡视图176
10.2.3 使用Storyboard方式创建176
10.2.4 选项卡选中事件177
10.3 分栏视图控制器178
10.3.1 控制器的几个重要的属性和方法178
10.3.2 NSSplitViewItem179
10.3.3 NSSplitView179
10.3.4 使用Storyboard创建分栏视图控制器179
10.3.5 用代码创建分栏视图控制器180
10.3.6 可折叠的视图控制181
10.4 视图控制器与窗口控制器的关系183
10.4.1 视图与窗口183
10.4.2 视图控制器与窗口控制器183
10.4.3 不依赖xib和storyboard,纯代码实现应用184
10.5 使用窗口控制器和视图控制器实现简单登录流程186
10.5.1 登录流程的基本工程实现186
10.5.2 代码控制启动的控制器190
10.5.3 登录页面使用效果美化190
10.5.4 登录页面纯代码实现192
10.5.5 整个工程纯代码实现195
10.6 滚动条视图高级用法195
10.6.1 滚动条视图显示多个按钮195
10.6.2 滚动条视图处理分页滑动199
第11章 鼠标和键盘事件206
11.1 事件的分发过程206
11.2 事件中的两个核心类207
11.2.1 NSResponder207
11.2.2 NSEvent207
11.3 鼠标事件208
11.3.1 鼠标点击208
11.3.2 鼠标拖放209
11.3.3 鼠标区域跟踪210
11.3.4 模拟鼠标点击选中212
11.4 键盘事件213
11.4.1 快捷键213
11.4.2 控制键214
11.5 按键绑定事件215
11.5.1 系统绑定的按键事件215
11.5.2 文字输入216
11.6 事件监控218
11.7 动作消息218
11.8 在视图控制器中处理事件219
第12章 撤销/重做操作220
12.1 撤销/重做流程分析220
12.2 实现原理222
12.3 撤销/重做动作的管理223
12.3.1 NSUndoManager的创建223
12.3.2 注册撤销动作223
12.3.3 清除撤销动作224
12.3.4 禁止注册撤销动作224
12.3.5 撤销动作命名224
12.3.6 撤销组224
12.4 撤销栈的深度224
12.5 撤销/重做通知消息225
12.6 撤销/重做编程示例225
第13章 拖放操作227
13.1 拖放开始227
13.1.1 拖放数据定义227
13.1.2 拖放的可视化图像设置229
13.1.3 拖放源事件229
13.1.4 拖放源协议NSDraggingSource230
13.2 拖放接收231
13.2.1 注册接收的拖放类型231
13.2.2 拖放目标方协议231
13.2.3 拖放接收方处理过程231
13.3 拖放端到端编程232
13.3.1 拖放源类DragSourceView232
13.3.2 拖放目标类233
13.3.3 视图控制器中拖放源初始化235
13.4 常见的拖放示例236
13.4.1 文件拖放处理236
13.4.2 表格视图的拖放处理237
13.4.3 大纲视图的数据拖放处理239
第14章 Cocoa数据绑定243
14.1 KVC243
14.1.1 KVC属性读写接口244
14.1.2 KVC路径访问相关接口244
14.1.3 批量属性访问接口244
14.2 KVO245
14.2.1 KVO相关接口245
14.2.2 手工管理KVO246
14.2.3 KVO的简单例子247
14.3 KVB248
14.3.1 传统的数据更新流程249
14.3.2 使用绑定技术简化更新流程249
14.3.3 实现绑定依赖的关键点252
14.3.4 KVB绑定的处理流程253
14.3.5 使用NSArrayController管理数据254
14.3.6 使用NSTreeController管理数据256
第15章 蓝牙框架261
15.1 蓝牙数据交换流程261
15.2 蓝牙框架中的相关类262
15.2.1 外围设备相关263
15.2.2 数据中心相关263
15.2.3 服务相关263
15.2.4 特征值相关263
15.3 外围设备的工作流程263
15.3.1 系统初始化上电263
15.3.2 创建服务264
15.3.3 创建特征值264
15.3.4 服务与特征值关联264
15.3.5 发布服务264
15.3.6 广播服务265
15.3.7 数据读写请求265
15.3.8 订阅请求处理266
15.4 数据中心工作流程266
15.4.1 系统初始化上电266
15.4.2 搜索外围设备267
15.4.3 建立连接267
15.4.4 查询服务267
15.4.5 查询服务特征值267
15.4.6 服务特征读请求268
15.4.7 服务特征值写268
15.4.8 服务订阅269
第16章 Bonjour协议270
16.1 Bonjour服务命名规则271
16.2 Bonjour协议API栈271
16.3 Bonjour核心流程271
16.3.1 服务发布272
16.3.2 服务发现272
16.3.3 地址解析273
16.4 Bonjour编程273
16.4.1 服务发布273
16.4.2 服务发现274
16.4.3 直接使用Bonjour进行数据发送274
16.4.4 需要注意的问题275
第17章 系统服务276
17.1 服务处理流程277
17.2 服务定义277
17.3 服务提供方编程279
17.3.1 实现服务功能接口279
17.3.2 声明服务280
17.3.3 注册服务281
17.3.4 测试服务功能281
17.4 服务使用方编程282
17.4.1 注册数据类型282
17.4.2 菜单有效性校验282
17.4.3 发送数据到剪贴板283
17.4.4 从剪贴板读取结果数据283
第18章 XPC服务284
18.1 XPC架构284
18.2 XPC编程实现285
18.2.1 XPC服务接口对象285
18.2.2 XPC服务方编程285
18.2.3 XPC服务请求方编程287
18.2.4 XPC服务接口反向调用288
第19章 消息推送290
19.1 本地消息通知290
19.1.1 注册本地消息通知290
19.1.2 实现本地消息代理协议方法291
19.1.3 取消本地通知291
19.1.4 程序控制发送消息通知292
19.2 远程消息通知292
19.2.1 推送消息的处理流程292
19.2.2 请求消息推送注册293
19.2.3 设备293
19.2.4 推送消息接收293
19.2.5 提供者消息发送294
19.2.6 消息格式294
19.2.7 Feedback服务295
19.2.8 消息推送环境的证书配置295
19.2.9 推送消息的发送296
第20章 多文档应用298
20.1 文档应用中的关键对象298
20.1.1 文档控制器298
20.1.2 文档模型299
20.1.3 文档窗口控制器299
20.2 创建基于文档的工程299
20.2.1 Document Types300
20.2.2 Exported UTIs301
20.2.3 文档编程模板工程301
20.3 wrapper方式读取文件303
20.3.1 创建NSFile Wrapper管理文件304
20.3.2 从NSFileWrapper实例读取内容304
20.3.3 支持NSFileWrapper文件的工程配置305
20.3.4 完整的FileWrapper工程示例305
20.4 文档处理流程309
20.4.1 新建文档流程309
20.4.2 打开文档流程309
20.4.3 保存文档流程310
20.4.4 导出文件流程310
20.5 文档应用开发步骤310
20.6 文档应用中的撤销/重做支持311
20.7 文档应用管理个人档案312
20.7.1 个人档案数据模型312
20.7.2 文档数据以普通文件方式存储313
20.7.3 文档数据以wrapper方式存储316
第21章 iCloud同步320
21.1 容器320
21.2 iCloud数据存储321
21.2.1 iCloud文档数据处理流程321
21.2.2 iCloud文档本地目录323
21.3 键值存储324
21.3.1 键值存储接口324
21.3.2 键值存储限制324
21.3.3 键值存储数据变化通知325
21.3.4 键值存储处理流程325
21.4 iCloud开发前准备工作325
21.5 容器数据在多个App间共享327
21.5.1 键值存储数据的App间共享访问327
21.5.2 文档数据的App间共享访问328
21.6 数据冲突328
21.6.1 键值数据冲突328
21.6.2 文档类型数据冲突328
第22章 CIoudKit329
22.1 使用 Dashboard后台管理数据330
22.2 容器共享332
22.3 创建记录结构333
22.4 CloudKit数据操作334
22.4.1 保存数据334
22.4.2 删除数据336
22.4.3 查询数据336
22.4.4 数据关联reference337
22.4.5 批量查询数据操作337
22.5 订阅数据变化通知338
22.5.1 创建订阅338
22.5.2 注册消息推送338
22.6 生产环境部署339
第23章 Core Data340
23.1 Core Data对象栈341
23.2 在项目中使用Core Data341
23.2.1 数据增加345
23.2.2 数据删除346
23.2.3 数据修改346
23.2.4 数据查询346
23.3 模型间关系347
23.3.1 一对一347
23.3.2 一对多348
23.3.3 多对多348
23.4 使用Bindings绑定管理对象350
23.5 撤销/重做操作的支持353
23.6 版本升级迁移354
23.6.1 轻量级迁移354
23.6.2 基于模型映射的迁移357
第24章 HTTP网络编程360
24.1 简单的数据请求361
24.1.1 使用系统默认方式创建URLSession361
24.1.2 使用自定义的代理方法创建URLSession362
24.1.3 创建URLSession使用POST方式传递数据363
24.2 文件下载364
24.2.1 创建下载任务364
24.2.2 实现下载代理协议364
24.3 文件上传365
24.3.1 流式文件上传客户端代码编写365
24.3.2 表单文件上传客户端代码编写366
24.4 缓存368
24.5 Cookie管理369
24.5.1 Cookie编程370
24.5.2 Cookie的一些使用场景370
24.6 断点续传371
24.7 基于URLSessionDataTask封装的网络处理工具类372
24.7.1 网络处理工具类实现分析372
24.7.2 HTTPClient工具类实现373
第25章 多线程377
25.1 GCD377
25.1.1 分发队列377
25.1.2 GCD多线程编程378
25.1.3 GCD实际使用的例子382
25.2 OperationQueue384
25.2.1 BlockOperation384
25.2.2 Operation385
25.2.3 设置任务间的依赖386
25.2.4 设置Operation执行完的回调387
25.2.5 取消任务387
25.2.6 暂停或恢复队列的执行387
25.2.7 任务执行的优先级387
25.3 Thread388
25.3.1 线程创建方式388
25.3.2 Thread类中的关键方法和属性389
25.3.3 线程中的共享资源保护390
第26章 事件循环393
26.1 RunLoop的模式393
26.2 RunLoop类394
26.3 RunLoop的活动状态395
26.4 定时器396
26.5 RunLoop中的输入源397
26.6 RunLoop事件处理流程398
26.7 RunLoop使用场景398
第27章 绘图技术399
27.1 绘图上下文399
27.2 坐标系统399
27.2.1 笛卡儿坐标399
27.2.2 屏幕坐标与本地坐标400
27.2.3 坐标变换400
27.3 颜色与透明度403
27.3.1 颜色模型和颜色空间403
27.3.2 创建颜色403
27.3.3 在绘图上下文中使用颜色404
27.3.4 从系统颜色面板获取颜色的方式404
27.4 绘图状态405
27.5 图像406
27.5.1 图像内部缓存406
27.5.2 图像大小406
27.5.3 图像的坐标系统406
27.5.4 图像绘制方法407
27.5.5 图像创建或加载407
27.5.6 屏幕图像的捕获408
27.5.7 图像的格式转换409
27.6 阴影和渐变409
27.6.1 阴影409
27.6.2 渐变410
27.7 文本绘制413
27.7.1 文本属性参数413
27.7.2 Suing的绘制方法413
27.8 使用路径绘图414
27.8.1 路径的样式415
27.8.2 点418
27.8.3 线418
27.8.4 多边形418
27.8.5 矩形418
27.8.6 圆角矩形419
27.8.7 圆和椭圆419
27.8.8 弧形419
27.8.9 贝塞尔曲线420
27.9 绘图的性能优化420
第28章 核心动画422
28.1 动画的产生过程422
28.2 层423
28.2.1 视图和层423
28.2.2 层的坐标系统424
28.2.3 层的时间系统425
28.2.4 层的对象树425
28.2.5 层级管理方法426
28.2.6 层的内容426
28.2.7 层的深度427
28.2.8 层的透视投影427
28.3 层动画428
28.3.1 隐式动画428
28.3.2 显式动画429
28.4 核心动画对象430
28.4.1 动画相关类431
28.4.2 协议433
28.4.3 辅助类435
28.4.4 事务436
28.5 动画的控制437
28.5.1 隐式动画的产生过程437
28.5.2 隐式动画的动作定义438
28.5.3 动画结束通知438
28.5.4 动画的暂停和恢复439
28.6 macOS中的属性动画439
28.6.1 属性动画440
28.6.2 动画上下文对象440
28.6.3 自动布局动画441
28.7 系统动画与核心动画的对比441
28.8 动画编程示例442
28.8.1 关键帧动画442
28.8.2 分组动画444
28.8.3 转场动画444
28.9 动画性能445
28.10 系统专有层446
28.10.1 渐变层446
28.10.2 形状层447
28.10.3 文本层448
28.10.4 分片层448
28.10.5 副本层449
28.10.6 发射层450
28.10.7 变换层452
第29章 多代理455
29.1 多代理与代理和通知的比较455
29.1.1 代理方式实现455
29.1.2 通知456
29.1.3 多代理456
29.2 多代理的实现457
29.2.1 Objective-C中多代理实现技术457
29.2.2 使用消息转发机制进行优化457
29.2.3 XMPPFramework458
29.3 聊天列表示例459
29.3.1 主要的视图控制器459
29.3.2 联系人模型类460
29.3.3 多代理管理类460
29.3.4 多代理的注册461
29.3.5 多代理的通知462
第30章 数据转换464
30.1 转换器基类465
30.2 系统实现的转换器465
30.3 绑定中使用的转换器466
30.3.1 类型转换器的实现和注册466
30.3.2 实现模型类467
30.3.3 绑定Combo Box控件到模型类468
30.4 实现自定义转换器的步骤469
30.5 使用转换器分离数据转换逻辑469
第31章 框架471
31.1 框架与静态库471
31.2 创建框架工程471
31.2.1 接口定义471
31.2.2 头文件引用声明472
31.2.3 使用框架473
31.2.4 框架的加载路径476
31.2.5 框架的签名问题478
第32章 应用沙盒化479
32.1 macOS沙盒机制479
32.2 应用沙盒配置信息479
32.3 文件沙盒编程481
32.3.1 设计界面481
32.3.2 App启动处理481
32.3.3 打开文件处理流程482
32.3.4 保存文件483
32.3.5 应用沙盒配置483
32.3.6 作用域安全的书签484
32.3.7 保存打开的文件URL的书签484
32.3.8 应用启动时通过URL的书签获取文件授权484
第33章 数据导航视图487
33.1 DataNavigationItem的设计487
33.1.1 DataNavigationItem基类488
33.1.2 DataNavigationButtonItem488
33.1.3 DataNavigationTextItem488
33.1.4 DataNavigationFlexibleItem489
33.2 DataNavigationView接口和属性489
33.2.1 接口489
33.2.2 内部属性489
33.3 DataNavigationView代码实现490
33.3.1 item配置490
33.3.2 创建视图491
33.3.3 自动布局492
33.3.4 更新文本视图的方法494
33.4 使用DataNavigationView494
第34章 表格数据管理控制器497
34.1 表格列的动态配置497
34.1.1 表列定义的模型498
34.1.2 NSTableColumn类的扩展499
34.1.3 NSTableView类的扩展499
34.1.4 代码动态配置表列的表数据导航控制器500
34.2 实现用代码创建的表格和用xib创建表格的兼容504
34.3 表格的数据代理505
34.3.1 数据集管理操作接口505
34.3.2 数据源实现507
34.3.3 动态创建表格内容的数据代理方法507
34.3.4 表内容的编辑处理511
34.3.5 TableDataDelegate的使用512
34.4 数据列排序513
34.5 数据行拖放交换顺序514
34.6 数据分页显示控制515
34.6.1 分页控制器515
34.6.2 分页导航视图517
34.6.3 分页数据获取519
34.7 表格数据的增删编辑操作519
34.7.1 增加数据519
34.7.2 删除数据520
34.7.3 编辑表数据521
第35章 自动化小工具522
35.1 图片资源适配自动化工具522
35.1.1 实现思路522
35.1.2 工程实现524
35.2 国际化527
35.2.1 App语言国际化的过程527
35.2.2 自动化的思路530
35.2.3 Xcode工程文件的编辑和修改531
第36章 iPhone利用蓝牙控制Mac534
36.1 控制的主要流程分析534
36.2 macOS服务器端535
36.2.1 XXXPeripheralService服务类535
36.2.2 macOS端界面开发537
36.2.3 Mac锁屏状态通知538
36.2.4 控制Mac电脑的系统命令和脚本539
36.2.5 macOS端接收iOS端的命令处理540
36.3 iOS控制端541
36.3.1 XXXCentralClient类541
36.3.2 iOS界面开发543
第37章 SQLite数据库编程546
37.1 FMDB介绍546
37.2 数据库操作接口封装548
37.2.1 数据库管理对象548
37.2.2 数据访问对象549
37.2.3 MDAO对象551
37.2.4 数据模型对象552
37.2.5 具体使用553
37.3 数据库加密554
37.3.1 获取支持加密的SQLite3版本554
37.3.2 加密数据库555
37.3.3 操作加密数据库556
37.4 获取SQLite元数据556
37.5 模板引擎559
37.5.1 Xcode中的模板560
37.5.2 模板引擎处理流程560
37.6 表模型自动化代码生成561
37.6.1 模板文件定义561
37.6.2 代码实现562
第38章 开发一个完整的macOS应用564
38.1 制定目标564
38.2 开发自己的应用564
38.3 主界面设计564
38.3.1 主窗口控制器565
38.3.2 分栏页面控制器566
38.3.3 左边导航列表页的设计与实现567
38.3.4 分栏右部界面570
38.3.5 详细界面设计571
38.4 工具栏设计572
38.5 菜单设计574
38.5.1 系统菜单574
38.5.2 上下文菜单575
38.6 应用偏好设置577
38.7 页面控制器的核心流程578
38.8 用户体验的一点改进582
38.9 发布应用准备583
38.9.1 发布到非应用商店渠道583
38.9.2 发布到应用商店584
后记586
热门推荐
- 362701.html
- 139086.html
- 2378773.html
- 3595238.html
- 3881389.html
- 2591889.html
- 2533248.html
- 1306378.html
- 2233373.html
- 2742259.html
- http://www.ickdjs.cc/book_730933.html
- http://www.ickdjs.cc/book_3599266.html
- http://www.ickdjs.cc/book_3204290.html
- http://www.ickdjs.cc/book_1916896.html
- http://www.ickdjs.cc/book_1559390.html
- http://www.ickdjs.cc/book_2715032.html
- http://www.ickdjs.cc/book_2846567.html
- http://www.ickdjs.cc/book_2468137.html
- http://www.ickdjs.cc/book_284870.html
- http://www.ickdjs.cc/book_712753.html