在 UIAlertView(iOS、Xamarin)上添加 UITextView,而不使用任何第三方库

2023-12-06

我想在 iOS 中显示一个对话框并添加一个UITextView到对话框的视图。这UITextViewtextView 包含带有电子邮件、电话和 url 的可点击链接的文本。我能够触发对话框,但只能使用标题和“确定”按钮。没有文本视图添加到对话框视图中。我不确定这里的问题是否与文本视图有关,或者与视图添加到对话框的方式有关。

请检查我下面的代码:

 UITextView textView = new UITextView();
 textView.Editable = false;
 textView.DataDetectorTypes = UIDataDetectorType.All;
 textView.Message = message;
 var dlg = UIAlertController.Create(Title ?? String.Empty, null, UIAlertControllerStyle.Alert);
 dlg.View.AddSubview(textView);
 dlg.AddAction(UIAlertAction.Create(OkText, UIAlertActionStyle.Default, action => Submit()));                

 var top = Utils.GetTopViewController();
 top.PresentViewController(dlg, animated: true, completionHandler: null);

Thanks,


似乎您需要一个自定义弹出视图来完成您需要的内容,我为您编写了一个示例,这是代码:

这是 ViewController.cs:

public partial class ViewController : UIViewController
{
    public ViewController (IntPtr handle) : base (handle)
    {
    }

    public override void ViewDidLoad ()
    {
        this.View.BackgroundColor = UIColor.Gray;
        this.View.AddGestureRecognizer (new UITapGestureRecognizer (() => {
            CustomPopUpView cpuv = new CustomPopUpView (new CoreGraphics.CGSize (300, 200));
            cpuv.PopUp (true,delegate{
                Console.WriteLine("cpuv will close");
            });
        }));
    }
}

这是 CustomPopUpView.cs:

public class CustomPopUpView : UIView
{
    public delegate void PopWillCloseHandler ();
    public event PopWillCloseHandler PopWillClose;

    private UIVisualEffectView effectView = new UIVisualEffectView (UIBlurEffect.FromStyle (UIBlurEffectStyle.Dark));
    private UIButton btnClose = new UIButton (UIButtonType.System);

    public CustomPopUpView (CGSize size)
    {
        nfloat lx = (UIScreen.MainScreen.Bounds.Width - size.Width) / 2;
        nfloat ly = (UIScreen.MainScreen.Bounds.Height - size.Height) / 2;
        this.Frame = new CGRect (new CGPoint (lx, ly), size);

        effectView.Alpha = 0;

        this.BackgroundColor = UIColor.White;

        nfloat btnHeight = 40;
        btnClose.SetTitle ("Close", UIControlState.Normal);
        btnClose.Frame = new CGRect (0, this.Frame.Height - btnHeight, this.Frame.Width, btnHeight);
        btnClose.TouchUpInside += delegate {
            Close();
        };
        this.AddSubview (btnClose);
    }

    public void PopUp (bool animated = true, Action popAnimationFinish = null)
    {
        UIWindow window = UIApplication.SharedApplication.KeyWindow;
        effectView.Frame = window.Bounds;
        window.EndEditing (true);
        window.AddSubview (effectView);
        window.AddSubview (this);

        if (animated) {
            Transform = CGAffineTransform.MakeScale (0.1f, 0.1f);
            UIView.Animate (0.15, delegate {
                Transform = CGAffineTransform.MakeScale (1, 1);
                effectView.Alpha = 0.8f;
            },delegate {
                if(null != popAnimationFinish)
                    popAnimationFinish ();
            });
        } else {
            effectView.Alpha = 0.8f;
        }
    }

    public void Close (bool animated = true)
    {
        if (animated) {
            UIView.Animate (0.15, delegate {
                Transform = CGAffineTransform.MakeScale (0.1f, 0.1f);
                effectView.Alpha = 0;
            }, delegate {
                this.RemoveFromSuperview();
                effectView.RemoveFromSuperview();
                if(null != PopWillClose) PopWillClose ();
            });
        } else {
            if(null != PopWillClose) PopWillClose ();
        }
    }
}

您可以将任何您想要的内容添加到此自定义弹出视图中,也可以继承它并创建您自己的弹出窗口。

希望它可以帮助你。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 UIAlertView(iOS、Xamarin)上添加 UITextView,而不使用任何第三方库 的相关文章

  • 在没有 UI 导航器控件的 uiviewcontroller 之间切换

    我想以编程方式在 2 个 UIViewController 类之间切换 而不需要任何额外的 UI 控制 例如向应用程序添加 UI 的 UITabBarController 我的 main 使用 addSubView 加载第一个视图控制器 v
  • Swift 中获取和设置 UITextField 和 UITextView 的光标位置

    我一直在尝试UITextField以及如何使用它的光标位置 我找到了一些与 Objective C 相关的答案 如 ios中获取UITextField的光标位置 https stackoverflow com questions 16432
  • 使用 iOS 7 SDK 构建时 UITextView 会自动换行

    我有一个UITextView里面一个UIScrollView效果很好iOS 6建造自xcode 4 x 但是现在构建xcode 5它无法正常工作 即使在iOS 6 问题是文本会随着屏幕宽度换行 即使UITextView and UIScro
  • Json DeserializeObject 仅由 iOS 引发异常

    我在 Android 上没有这个问题 但是当我在 iOS 中运行相同的工作代码时 我得到了异常 public async Task Login string inlogData string password string gcm Logi
  • 如何使用 MonoTouch 为 UIButton Alpha 属性设置动画

    我有一个带有 Alpha 属性的简单 UIButton 我想将其从 1 0f 设置为 0 0f 然后再返回 1 0f 这基本上是对 TouchDown 的响应 另外 如果我调用的例程不在主线程上 在线程池上调用的异步委托 我需要做什么特别的
  • 有没有办法在 Swift 中将 UIPickerView 添加到 UIAlertController (Alert 或 ActionSheet)中?

    我对 swift 以及 iOS 编程 完全陌生 但我开始摆弄它 当一切仍然是 beta 版本时 这不是一个好主意 D 于是我尝试自己去解决 但还是一无所获 甚至尝试添加包含选择器的子视图 但没有成功 那么有人可以帮助我吗 嗯 这是我的最终代
  • 在 Xamarin Studio for Mac 上添加 NuGet 包不起作用

    我已经尝试搜索这个问题 并且我遇到了许多人们无法添加 NuGet 包的问题 但没有发现任何可以解决我的问题的方法 我正在使用 Xamarin Studio for Mac 并尝试将 SQLite 包添加到我的 Xamarin Forms 项
  • iOS 9 的 UIAlertView 的替代方案?

    UAlertView在 iOS 9 及更高版本中已弃用 有什么替代方案吗 UIAlertView new UIAlertView alloc initWithTitle Success message Your InApp Purchase
  • Xamarin.iOS 上的 MakeGenericMethod/MakeGenericType

    我试图弄清楚从 Xamarin 部署 iOS 时这些限制的真正含义 http developer xamarin com guides ios advanced topics limitations http developer xamar
  • 我的所有 UIAlertController 消息都变成了单行

    我不确定这是否是罪魁祸首 但我对这个项目所做的最大改变是几天前升级到 Swift 4 我知道我的 UIAlertController 消息在需要时显示多行 但今天我偶然意识到它们全部变成了单行并且末尾有省略号 由于我从 API 显示这些消息
  • Xamarin Dim 页面(主详细信息页面)

    因此 对于 Android 当显示主从页面的母版页时 母版页会被 黑色暗淡 视图覆盖 因此很容易用眼睛区分这两个页面 在 iOS 中 详细信息页面不会变暗 因此更难区分视图 有没有办法用 黑色半透明 的 BoxView 或 Frame 覆盖
  • Xamarin Forms WebView 打开外部链接

    我的应用程序中有一个网络视图 当单击外部链接 在普通浏览器中在新选项卡中打开 时 我无法返回我的网站 当打开一个新标签时 有可能像 Gmail 一样关闭该标签的菜单吗 目的是 每当单击链接时 用户都可以选择使用哪个选项来查看内容 例如单击链
  • 如何更改便携式 xamarin ios 项目中的启动屏幕?

    我正在使用便携式 xamarin 形式 其中项目是 IOS 项目 在 IOS 项目中 我想创建闪屏 我在 ios 项目属性中添加了 Iphone 启动图像和 iPad 启动图像 当我运行该应用程序时 它显示默认的启动屏幕 我还尝试从 inf
  • Xamarin.iOS 项目:CS1703:已导入多个具有相同标识的程序集

    我有一个使用 NET Standard 2 0 的跨平台 iOS 和 Android Xamarin 解决方案 该解决方案是由 Visual Studio 2017 构建的 我已经尝试了当前版本和预览版本 Forms 和 Android 项
  • 在 UIAlertController 的文本字段中选择文本

    我需要在 UIAlertController 出现后立即选择文本字段的文本 但是 我在标准 UITextField 中选择文本的方式在这里不起作用 这就是我尝试过的 但我似乎无法让它发挥作用 let ac UIAlertController
  • Visual Studio Community 缺少 iOS 11.2.1 的开发人员工具,无法调试

    我正在尝试在调试配置文件下构建和运行 所以我的 Xcode 是最新的9 2 9C40b 检查了应用商店和开发者门户 没有更新 Visual Studio 社区也已更新至7 3 2 build 12 stable channel 仅使用 Xc
  • MonoTouch.Dialog:关闭键盘

    使用 Reflection API 自动生成 UI 当用户选择新字段或选择生成新视图以供选择的字段时 如何关闭键盘 在后一种情况下 当用户返回到第一个屏幕时 旧键盘仍然存在 UIView EndEditing bool force 上面的代
  • UITableView 在单元格刷新时滚动到顶部

    我有一个 UITableView 其中一个单元格的大小是动态调整的 以适应其中的 UITextView 每当键入一个键时 单元格都会检查计算出的高度是否增加 就像换行符一样 因此它可以告诉表单元格的高度需要重新计算 我用这段代码做到了这一点
  • 使用 Mono Touch 的 Iphone 键盘顶部带有完成按钮的工具栏?

    我需要使用 UIkeyboard type 数字键盘在工具栏上添加完成按钮 以便在单击完成按钮时退出键盘 我使用了输入附件视图 但它也添加到普通键盘 我需要在我有数字键盘的地方添加这个 例如 我有一个文本字段 它只需要我需要的数字 除了我不
  • 带 Prism 的表单:应用程序窗口预计有一个根 VC

    我刚刚在我的新应用程序中实现了 Prism 库 并且正在使用 NavigationService 它在 Android 上运行良好 但是当我尝试在联网的 Mac 上调试我的 Xamarin Forms iOS 应用程序时 我的 Main 方

随机推荐

  • Selenium Web 驱动程序 - 切换到父窗口

    我使用 selenium Web 驱动程序 我打开了一个父窗口 单击链接后 新窗口将打开 我从列表中选择一些值 此窗口会自动关闭 现在我需要在我的父窗口中进行操作 我怎样才能做到这一点 我尝试了以下代码 String HandleBefor
  • 正则表达式 - 匹配第 n 个字符,然后停止(非贪婪)

    尝试捕获此日志事件中的时间戳 对于 Splunk 172 21 201 135 http o 1I0BTOx1063x3667295x0 hkv 2020 06 10 17 43 18 951 POST rest build status
  • 弹出窗口触摸拦截器不工作

    我正在尝试测试 PopupWindow 类 我创建了这个方法来显示弹出窗口 public void showPopup LayoutInflater layoutInflater LayoutInflater getBaseContext
  • 多个线程持有同一个锁?

    dashboardRefreshContainer 8 Thread t 1384 java lang Thread State RUNNABLE at sun util calendar ZoneInfo getLastRule Zone
  • Delphi 中的 LZMA 或 7zip

    Delphi 中是否有任何库可以处理 LZMA 或 7zip 文件 包括创建自解压 EXE 有一些源代码在7zip org在 c java c 中 但我希望它们在 delphi 中 但我想要一些独立的东西 没有 DLL 有两种解决方案 1
  • R,按月分割数据

    我有带日期的数据 我想按所有事物所在的月份间隔对它们进行分组 所以说我有 date value 2015 04 01 1 2015 04 28 2 2015 05 04 3 2015 05 09 4 然后我想结束分组 1 2015 04 0
  • 当规则设置为“仅预览”时,Cloud Armor 日志不是很清楚

    我正在使用 Cloud Armor 部署 WAF 我意识到可以在 仅预览 模式下创建规则 并且 Cloud Logging 中有 Cloud Armor 条目 问题是 当我创建 仅预览 规则并且该规则与某些请求匹配时 我无法在日志中区分与某
  • 确保客户端对集合的访问安全

    我有一个运行良好的流星应用程序原型 但目前非常不安全 我需要显示与当前登录用户匹配的用户列表 首先 我决定发布所有用户 将字段限制为过滤客户端用户列表所需的字段 Meteor publish users function return Me
  • 在 C#/ASP.NET 中获取 POST 数据

    我正在尝试获取 POST 数据 但运气不佳 我的代码如下 当我单击表单按钮时 什么也没有发生 我预计至少我的 IDE 会崩溃A Ret 但什么也没发生 文件测试 cs using System Web public class A publ
  • 使用Python计算多边形形状文件中的点数

    我有一个美国的多边形形状文件 由各个州组成作为它们的属性值 此外 我有数组存储我也感兴趣的点事件的纬度和经度值 本质上 我想 空间连接 点和多边形 或执行检查以查看每个多边形 即状态 点在 然后将每个状态中的点数相加 以找出哪个状态具有最多
  • 唤醒锁未打开屏幕?帮助?

    我有一个信号让我的应用程序休眠指定的分钟数 使用 AlarmManager 然后将其唤醒 一切正常 只是屏幕不亮 我正在使用 BroadcastReceiver 类中的唤醒锁 KeyguardManager key KeyguardMana
  • 为什么 Java 有基数限制?

    我注意到 Java 中基数的最大限制是基数 36 这是一个任意的限制 还是Java有理由以这种方式限制基数 它是十进制位数 10 加上字母表中的字母数 26 如果允许基数为 37 则必须选择一个新字符来表示第 37 位数字 虽然它肯定会是p
  • 评估 Spark 广播变量的最大大小

    我正在尝试测量可以使用 Spark 广播广播的变量的最大大小 我没有找到关于这个问题的任何解释 有人测量过吗 Spark有广播大小的配置吗 广播限制现已增加至 8 GB 你可以找到详细信息here
  • 如何使用 MailboxProcessor 创建作业队列?

    我正在尝试使用 MailboxProcessor 建模异步作业处理框架 我的要求是启动 停止 暂停和恢复作业处理器 我可以使用 MailboxProcessor 构建暂停 恢复功能吗 另外我应该能够停止和启动 我正在尝试模仿 Windows
  • 致命错误:尝试解析 JSON 时,在 Swift 中展开可选值时意外发现 nil

    我尝试构建一个基于文档的 Cocoa 应用程序 当我尝试解析 JSON 时readFromData ofType error 方法 我得到一个错误 fatal error unexpectedly found nil while unwra
  • 使用map()和mutate()循环多个变量和参数

    我无法弄清楚如何有效地映射表中的多个参数和变量以生成新变量 在 真实 版本中 我基本上有一个数学函数生成中心估计 并且我需要运行一系列不同参数的敏感性测试 我正在尝试弄清楚如何在 tidyverse 中做到这一点 看起来 map 和 mut
  • 具有多个详细视图控制器的 UISplitViewController

    我正在制作一个 splitView 应用程序 我想要不同的详细视图控制器 我进行了很多研究 发现使用苹果 MultipleDetailView 控制器 但它没有完全采用 所以任何人都可以使用它 所以有什么方法可以完成这个意味着不同所有人的d
  • CakePHP AJAX 布局

    我正在使用 CakePHP 应用程序和 jQuery Mobile 在 CakePHP 应用程序中 RequestHandler 已打开 现在 jQuery Mobile 将所有请求作为 ajax 请求 但需要完整的页面 不仅是我视图中的内
  • 在 Spring MVC 中有条件地渲染 HTML

    是否有任何标签可以有条件地渲染 HTML 块 例如 Struts 有
  • 在 UIAlertView(iOS、Xamarin)上添加 UITextView,而不使用任何第三方库

    我想在 iOS 中显示一个对话框并添加一个UITextView到对话框的视图 这UITextViewtextView 包含带有电子邮件 电话和 url 的可点击链接的文本 我能够触发对话框 但只能使用标题和 确定 按钮 没有文本视图添加到对