2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

MonoTouch.Dialog 让 iPhone 对话框的创建更加便捷

  • 2010-02-25
  • 本文字数:1268 字

    阅读完需:约 4 分钟

为了简化用 MonoTouch 来进行 iPhone 开发,Miguel de Icaza 开发了 2 个基于 UITableView 的抽象层。这些抽象层让开发人员可选择是使用基于特性标记的声明语法,还是使用基于嵌套控件的命令模型来开发。

UITableView 或“表视图”是 iPhone 开发的重要组成部分。虽然它很强大,用起来却也很枯燥。人们不能简单地添加新视图节(sections)和视图行(rows)。首先,开发人员不得不重写 numberOfSections 函数来返回正确的计数。接着 numberOfRowsInSection 函数也必须进行调整来为每个函数返回正确的值。最后,界面部件本身需要通过 cellForRowAtIndexPath 函数来加载。如果这 3 个函数没有保持一致,那么 UI 上的控件看起来就像随机摆放的。

Miguel 开发的抽象层的核心就是使用一系列嵌套的“元素”。每个元素都表示一种类型的界面部件,其在运行时会被放置到一个单元格中。下面是 Miguel 博客上的一个例子。

复制代码
var root = new RootElement ("Settings") {
new Section (){
new BooleanElement ("Airplane Mode", false),
new RootElement ("Notifications", 0, 0) { Notifications }
},
new Section (){
new RootElement ("Sound"), { Sound },
new RootElement ("Brightness"){ Brightness },
new RootElement ("Wallpaper"){ Wallpaper }
},
new Section () {
new EntryElement ("Login", "Your login name", "miguel"),
new EntryElement ("Password", "Your password", "password", true),
new DateElement ("Select Date", DateTime.Now),
new TimeElement ("Select Time", DateTime.Now)
}
}

Miguel 写到:

尽管 UITableView 是基于强大的模型 / 视图 / 控制器(MVC)来构建的,这种方式让大家可以有效地扩展到大数据集,然而大部分配置页面和数据录入页面却不需要这么复杂的方式。
另外一个特性是,它会处理好所有在进行文本录入的记录问题,而无需编程者插手这些工作:接受键盘输入,在回车的时候自动切换到下一个录入行,在视图节中排列所有录入行,在已经完成所有录入后隐藏键盘。

Miguel 也为快速而简单的配置界面提供了基于反射的方式。这个技术依赖于编译器以代码中出现的先后顺序来编译成员变量的特点,所以要小心那些会自动排序代码的代码格式化工具。

复制代码
class AccountInfo {
[Section]
public bool AirplaneMode;
[Section ("Data Entry", "Your credentials")]
[Entry ("Enter your login name")]
public string Login;
[Caption ("Password"), Password ("Enter your password")]
public string passwd;
[Section ("Travel options")]
public SeatPreference preference;
}

MonoTouch.Dialog 基于 MIT X11 许可协议发布。而 MonoTouch 本身是一个 Novell 出品的商业产品,让.NET 的应用程序可以运行在 Apple 的 iPhone 和 iPad 设备上。

查看英文原文: MonoTouch.Dialog Makes Creating Simple iPhone Dialogs Easier and Faster

2010-02-25 04:322097
用户头像

发布了 254 篇内容, 共 70.5 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

哈尔滨三级等保:等级定位、适用范畴与二级等保核心区别

等保测评

DeepSeek-OCR 开了窗,但企业落地的大门为何是EasyLink多模态视觉模型?

EasyLink_ai

人工智能 非结构化数据 智能体 OCR 智能文档图像解析技术

聊点技术 | 智能可观测架构升级:构建统一、实时、高可用的数据处理平台

博睿数据

大数据-139 ClickHouse MergeTree 最佳实践:Replacing 去重、Summing 求和、分区设计与物化视图替代方案

武子康

大数据 flink spark 分布式 Clickhouse

【新特性】 版本速递 | 华为云Versatile智能体平台 新增特性介绍(2025年10月发布)

华为云开发者联盟

人工智能 华为云 agent 华为云开发者联盟 MCP

AI英语学习App的开发

北京木奇移动技术有限公司

AI教育 软件外包公司 AI英语

过程控制 驱动器维护经验总结(1)

万里无云万里天

工业 工厂运维 过程控制

云栖实录 | AI 搜索引擎如何驱动亿级物流:货拉拉 x 阿里云 Elasticsearch

阿里云大数据AI技术

elasticsearch 阿里云 货拉拉

字节一面凉了!被问 “你们项目为啥要用消息队列”,我张口就说 “解耦异步削峰”,面试官:你怕不是没真做过项目?

Fox爱分享

程序员 面试 开发 消息队列 大厂

对 GPT 5 模型路由机制的深度解析

Baihai IDP

程序员 AI 大模型 LLM 模型路由

AI向量知识库更新策略

阿汤哥

知识库

火山引擎多模态数据湖解决方案,以新一代数据基座迎接AI Agent时代

字节跳动数据平台

大模型在百度电商机审应用的落地实践

百度Geek说

大模型 电商风控 内容风控 审核agent

【浪潮海岳inDatax数据中台专栏】主数据管理在数据治理中实施的时机

inBuilder低代码平台

数据中台 数据治理 主数据管理

“数据筑基” 赋能 “人工智能+”:解构“十五五”新质生产力的核心路径

袋鼠云数栈

大数据 数据治理 发布会 袋鼠云 易知微

从真实世界数据到监管级证据:临析智镜 ClinLens AI 受邀出席中国医药生物技术大会,发布真实世界研究解决方案

ModelWhale

人工智能 医学 专病库 临床科研

springboot使用flyway,使用介绍、个人总结及报错场景如何修改

刘大猫

环境工程 城市规划 城市设计 环境纳米设计 环境遥感应用

翘楚共探AI落地 同驱产业新程:司马阅2025企业AI落地应用峰会上海站,在张江机器人谷落下帷幕

司马阅

人工智能

小红书同款3D百万运镜平替!他们用AE肝到崩,我们用这个一键直接出丨ScreenSage

阿星AI工作室

产品 AI 自媒体 AI工具

Java 运行时安全:输入验证、沙箱机制、安全反序列化

码界行者

Java 安全

主数据管理在数据治理中实施的时机

inBuilder低代码平台

数据挖掘 数据中台 主数据管理

过程控制 软件维护经验总结(3)

万里无云万里天

工业 工厂运维 过程控制

哈尔滨二级等保:核心定位、适用范围与三级等保差异

等保测评

舆情监测软件的“心脏”:高质量数据源的构成与采集原理探秘

沃观Wovision

海外舆情监测 舆情监测软件 全球舆情监测

2025年GEO公司排名:基于公开数据的可信评价榜单

新消费日报

从全球噪声到战略信号:全球舆情监控数据的融合、分析与决策赋能

沃观Wovision

海外舆情监测 舆情监测软件 全球舆情监测 全球舆情监控

大数据-140 ClickHouse CollapsingMergeTree详解 外部数据源最小闭环HDFS/MySQL/Kafka

武子康

MySQL 大数据 kafka hdfs Clickhouse

使用智能代理在亚马逊云科技无服务器架构上进行源代码分析

亚马逊云科技 (Amazon Web Services)

AIO Sandbox:为 AI Agent 打造的一体化、可定制的沙箱环境

字节跳动开源

开源 AI agent

2025年GEO优化服务评测:用户口碑与数据双重验证榜

新消费日报

MonoTouch.Dialog让iPhone对话框的创建更加便捷_.NET_Jonathan Allen_InfoQ精选文章