首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当键盘未被聚焦时,如何使iOS搜索栏上的“取消”可点击?[Xamarin表单]

在iOS中,当键盘未被聚焦时,搜索栏上的“取消”按钮默认是不可点击的。要使其可点击,可以通过以下步骤实现:

  1. 首先,确保你的iOS应用使用了Xamarin.Forms框架进行开发。
  2. 在Xamarin.Forms中,可以通过自定义渲染器来修改搜索栏的行为。创建一个自定义渲染器,继承自Xamarin.Forms.Platform.iOS.SearchBarRenderer。
  3. 在自定义渲染器中,重写OnElementChanged方法。在该方法中,获取到iOS平台上的UISearchBar实例,并设置其ShowsCancelButton属性为true,以显示“取消”按钮。

以下是一个示例的自定义渲染器代码:

代码语言:txt
复制
using UIKit;
using Xamarin.Forms;
using Xamarin.Forms.Platform.iOS;

[assembly: ExportRenderer(typeof(SearchBar), typeof(CustomSearchBarRenderer))]
namespace YourNamespace.iOS
{
    public class CustomSearchBarRenderer : SearchBarRenderer
    {
        protected override void OnElementChanged(ElementChangedEventArgs<SearchBar> e)
        {
            base.OnElementChanged(e);

            if (Control != null)
            {
                Control.ShowsCancelButton = true;
            }
        }
    }
}
  1. 将自定义渲染器应用到你的搜索栏上。在Xamarin.Forms中,可以通过在App.xaml.cs文件的OnStart方法中添加以下代码来应用自定义渲染器:
代码语言:txt
复制
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;

protected override void OnStart()
{
    base.OnStart();

    // 应用自定义渲染器
    var searchBar = new SearchBar();
    searchBar.On<iOS>().SetUseLegacySearchBar(true);
    MainPage = new MainPage(searchBar);
}

请注意,上述代码中的MainPage是你应用的主页面,你需要将其替换为你自己的页面。

通过以上步骤,当键盘未被聚焦时,iOS搜索栏上的“取消”按钮将会可点击。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

最新iOS设计规范四|3大界面要素:视图(Views)

栏(Bars) 栏,可以告诉用户在APP中当前在所在的位置、能提供导航,还可能包含用于触发操作和传递信息的按钮或其他元素。包括6种:导航栏、搜索栏、侧边栏、状态栏、标签栏、工具栏。...提供“取消”按钮,使人们可以重新考虑破坏性操作。“取消”按钮应出现在动作表单的底部。 突出显示破坏性选择。将红色用于执行破坏性或危险操作的按钮,并将这些按钮显示在动作表单的顶部。 避免让操作表滚动。...非模态浮层可以通过点击屏幕上浮层以外的部分或浮层上的按钮来取消/关闭。而模态浮层则是通过点击浮层上的取消或其他按钮来关闭/取消的。...浮层适合大屏幕上,可以包含各种元素,包括导航栏、工具栏、标签栏、表格、集合、图像、地图和自定义视图。当浮层出现时,其他视图的交互行为会被禁止,直到浮层被取消/关闭。...自动关闭非模式弹出窗口时,请务必保存当前任务。通过点击屏幕非浮层区域部分,很容易误点而关闭非模态弹出窗口。仅当用户点击取消按钮时才取消当前的任务。 在屏幕适当的位置显示浮层。

8.5K31

【系列】移动端项目经验 表单兼容(上篇)

不再多说,一起进入今天的主要内容。 移动端兼容 - fixed定位的input 移动端系统:iOS 微信当中 功能描述:在我们的移动端网页当中,经常会在顶部出现搜索栏。...搜索栏的位置处理方式通常是使用到position:fixed进行定位处理的。...当我们需要在文本框当中输入内容时,必然会点击input/textarea元素,使其处于聚焦状态,这个时候,搜索栏的位置会发生变化,不再锁定于页面顶端,而是变成居中显示状态。...当点击模拟的文本框时,锁住整个页面的同时,隐藏模拟文本框,显示实际悬浮文本框。 测试效果图: fixed定位的input 正常状态 ? fixed定位的input BUG状态 ?...移动端兼容 - iPhone、iPad的按钮默认样式 移动端系统:iOS设备中的网页 功能描述:在进行表单中的按钮元素样式设置时,有时会处理按钮的背景以及圆角等特性,但是在iPhone以及iPad当中(

98580
  • 关于H5在移动端弹出下拉选项时遮挡输入框的问题

    : 就是一个正常的表单,除了有文本输入,还有下拉选项,当下拉选项弹出时不能遮挡住聚焦的输入框,如下图所示,当点击左图的Complex Labels时,弹出下拉选项,下拉选项遮挡住了Complex Labels...,产品要求的效果是:当下拉选项弹出时不能遮挡住当前聚焦的表单项,也就是Complex labels quill.js工具栏定位问题 工具栏使用的是fixed定位,css如下所示: #ql-toolbar...当光标聚焦到编辑区输入文字时,系统级的输入法键盘弹出,此时,键盘的弹出对webview的高度会有一定的影响,而android和ios对webview的处理有所不同,简单的说就是: android上:在下图中...的高度不会随着键盘的弹出而发生改变,始终是左图蓝色框的高度 综上,当工具栏使用fixed来定位时,在android上,当键盘弹出时webview的高度会减小,所以工具栏会悬浮在键盘之上,也就是说,在android...但是,ios不会改变webview的高度,因此,当键盘弹出时,工具栏始终位于屏幕底部,从而被键盘遮挡,如此就不符合需求,所以,需要针对ios做特别处理 ios上的解决方案 有以下三种解决方案: 改设计:

    5.5K30

    最新iOS设计规范十|5大拓展程序(Extensions)

    确保自定义键盘是有意义的。自定义键盘只有当APP想要在系统层面,提供一个独一无二的键盘功能时才有意义。例如:输入文本的新方式或输入iOS不支持的语言的能力。...请注意,当安装了多个键盘时,Globe键会替换Emoji键。 不要复制系统提供的键盘功能。在某些设备上,即使在使用自定义键盘时,“表情符号/地球”键和“听写”键也会自动出现在键盘下方。...通过在您的应用中(而不是在键盘本身中)提供使用说明,使入门过程更容易。告诉人们如何启用键盘,在输入文本时将其激活,使用它,然后切换回标准键盘。...在键入过程中播放标准的键盘点击声音。当用户点击键盘上的按键时,键盘点击声音会提供可听见的反馈。在输入视图中点击自定义控件也会产生这种声音。...如果有人点击“取消”按钮,请不要立即放弃他们的更改。要求他们确认他们确实要取消,并告知他们取消后所有编辑都将丢失。如果尚未进行任何编辑,则无需显示此确认。 不要提供自定义导航栏。

    3.2K10

    最新iOS设计规范五|3大界面要素:控件(Controls)

    当列表中有详情展开按钮时,点击该按钮会显示附加信息,点击其他位置则选择行或APP的自定义行为。...用户通常希望将静态内容(例如图像标签或社交媒体状态)拷贝到电子邮件,便笺或网络搜索中使用。 不要在编辑菜单上加“编辑”按钮。如果这样做,用户很容易误点,从而导致编辑菜单被取消。 让编辑操作可撤消。...另外,如果显示太长的选项,考虑使用列表或表单。列表和表单的高度可以调整,并且表单可以包含索引,这可以更快地定位列表的一部分。 使用可预测的和逻辑排序的值。...菜单使用红色文本突出显示潜在破坏性的操作。当人们选择破坏性操作时,系统会显示一个操作表(iOS)或弹出框(iPadOS),他们可以在其中确认选择或取消该操作。...iOS提供了几种不同的键盘类型,每种键盘都用于方便不同文本类型的输入。当用户在输入文本时,根据输入的文本类型显示相应的键盘类型,可以简化数据输入。

    8.6K30

    最新iOS设计规范三|3大界面要素:栏(Bars)

    导航栏是半透明的,也可以添加背景色,并且必要时可以设置为隐藏。 ? 某些情况下可暂时隐藏导航栏,以提供更沉浸的体验。例如,当人们查看全屏照片时,“照片”会隐藏导航栏和其他界面元素。...考虑在搜索栏下方提供有用的快捷方式和其他内容。使用搜索栏下方的区域可帮助人们更快地获取内容。例如,Safari会在您点击搜索字段后立即显示您的书签。选择一个即可直接进入,而无需输入任何搜索词。...例如,如果iOS设备上没有歌曲,则“音乐”应用中的“立即收听”选项卡将说明如何下载歌曲。 始终在附加视图中切换上下文。...为了使您的界面具有可预测性,选择一个选项卡应始终影响直接连接到选项卡栏的视图,而不影响屏幕上其他位置的视图。例如,在拆分视图的左侧选择一个选项卡不应导致拆分视图的右侧突然改变。...例如:在Safari中,当你开始滚动页面时,工具栏会自动隐藏,因为你可能正在阅读。你还可以点击屏幕底部让它再次出现。当弹出键盘时,工具栏也会被隐藏。 ?

    9.9K10

    【译】W3C WAI-ARIA最佳实践 -- 表单

    除了需要注意的情况外,通过menubutton打开的菜单与从菜单栏打开的菜单表现一致。 + 当 menu 打开,或者当 menubar 接收焦点时,键盘焦点设置在第一个项目上。...- (可选):当焦点位于未选中的menuitemradio上时,不会关闭菜单,选中聚焦的 menuitemradio,并取消选中同一组中的任何其他已选中的 menuitemradio 元素。...例如,当在编辑文本时按下快捷键时,一个富文本编辑器的菜单栏可能会获得焦点,例如alt + F10。在这种情况下,点击Escape 或从菜单中激活一个命令可能会将焦点返回给编辑器。 4....Left Arrow 和 Up Arrow: 移动焦点到组合中的上一个单选按钮,取消选中先前聚焦的按钮,并选中新聚焦的按钮。如果焦点在第一个按钮上,焦点移动到最后一个按钮。...当按钮被打开时,该状态属性的值为 true,当被关闭时,该状态属性的值为false。 示例 按钮示例:将可点击的HTML div 和 span 元素作为可访问命令和切换按钮的示例。

    8.3K30

    iOS 9人机界面指南(四):UI元素(上) - 腾讯ISUX

    当键盘被唤起、用户使用了手势、或者当前视图变为竖屏的情况下,导航栏可以隐藏。...工具栏: 是半透明的 在iPhone上,工具栏始终位于屏幕底部,而在iPad上则有可能出现在顶部 当键盘被唤起、用户使用了手势、或者当前视图变为竖屏的情况下,工具栏可以隐藏。...请注意,当搜索的视图控制器包含在导航控制器里面的时候——比如在邮件应用(Mail)中那样,当用户激活搜索时,搜索栏会自动上浮,平铺到原来导航栏的位置上。...当搜索栏出现时,范围栏会出现在它的附近。范围栏的外观与你所指定的搜索栏的外观兼容。 当用户想在明确的分类范围内进行搜索时,使用范围栏是非常有用的。...使用表格视图时,可遵循以下这些指引: 用户选择列表项时,始终给与反馈。当用户点击可选的列表项时会认为被点击的项都应短暂地高亮一下。

    10.1K51

    Material Design — 按钮( Buttons)

    推荐的按钮放置 标准提示框 屏幕上的按钮对齐方式:右边 将肯定性按钮放在右侧,否定性的放在左边。 表单 屏幕上的按钮对齐:左边 将肯定性按钮放在左侧,否定性的放在右边。...按钮样式 圆角半径 按钮应该有一个2dp的圆角半径。 密度 当鼠标和键盘是主要的输入方法时,可以稍微减少按钮尺寸以适应密集的UI界面。...点击当前状态位置会触发相应的动作并且当前状态会变成可编辑。点击下拉箭头会显示所有状态。 ? 桌面下拉 桌面应用栏规格 ?...例如,当聚焦一个切换按钮时,焦点可能会同时显示组中的其他切换按钮。...图标切换 图标适用于切换按钮,允许选择或取消选择单个选项,例如向项目添加或移除星标。 他们最好位于应用栏,工具栏,动作按钮或切换。 图标切换可能会在其触摸目标范围外显示有界或无界的墨水扩散反应波纹。

    3.9K160

    微信小程序解决ios页面上推问题

    相信大家写原生小程序都遇到过一个问题,当输入框聚焦键盘弹起时,页面会自动上推,使得输入框刚好位于键盘之上,在安卓中推动的只是内容,但在ios中,推动的是整个页面,导致导航栏被推出屏幕外,如下:图片针对这个问题...图片如上图,我期望键盘弹起能刚好将整个输入栏顶在键盘之上,所以我选择给这一栏加上唯一类名,里面的input自定义属性值为该输入栏的唯一类名,这样做事为了当我触发键盘事件时,能拿到当前输入栏的类名,获取该元素的坐标信息...键盘弹起后,获取到键盘的高度C,用显示区域B减去键盘区域C就是我们可使用的区域D获取输入栏底部距离显示区域的坐标,如E/H若输入栏底部坐标小于可使用区域D,如H,则说明当键盘弹起时,该输入栏不会被键盘遮挡...,并且textarea添加了原生的完成那栏,先点击textarea触发键盘事件,再点击input触发键盘事件,input获取到的键盘高度是有完成那栏的,导致页面上推距离不准解决:不要使用原生的完成,自定义一个完成...,获取到真实的键盘高度,页面中添加两个变量,一个是input的高度,一个是textarea的高度,当输入框聚焦获取到键盘高度时,判断当前类型的高度是否有值,没有就赋值,有就用之前的值const height

    5.7K30

    CSS 下拉菜单与 focus

    上面是 tabindex 决定元素是否可以被聚焦,其实 tabindex 还可以决定元素能如何被聚焦以及被聚焦的顺序,而这些就在赋给 tabindex 的值控制的范畴。...先说决定如何被聚焦,这里分为负值(一般是 -1)与非负值,若为负值则该元素 不可以被键盘 Tab 聚焦、但可以被 JavaScript 或者鼠标单击聚焦,一般希望被 JavaScript 接管的设为此值...再说决定聚焦顺序,非负值也分为两部分,0 与正值,若为 0 则该元素可以被键盘 Tab 聚焦或 JavaScript、点击聚焦且按照默认顺序聚焦;若为正值则按照数值从小到大的顺序聚焦且 优先于所有 tabindex...iOS Safari 出错 是的,iOS Safari 上的这个错误是促成本文最主要的缘故。...其次,当一个元素被聚焦时,点击一般的空白处无法使它失焦。这个问题很迷,在 iOS Safari 上 100% 复现而在 iOS Chrome 上完全无法复现。

    5.6K20

    Web 用户体验设计提升实践

    1.4.4 图片丢失 好了,当图片链接没问题时,已经处理好了。接下来还需要考虑,当图片链接挂了,应该如何处理。 处理的方式有很多种。...当然,除了 Tab 键之外,对于一些多输入框、选择框的表单页面,我们也应该想着如何简化用户的操作,例如用户按回车键时自动前进到下一字段。一般而言,用户必须执行的触按越少,体验越佳。...也加上这样一句代码,全程再用键盘操作一下: [ ] 除了在 input 框有光标提示,当使用 Tab 进行焦点切换到 select 或者到 button 时,由于没有了 :focus 样式,用户会感到迷茫...有了这个伪类,当用户使用鼠标操作可聚焦元素时,就可以做到不展示 :focus 样式或者让其表现较弱;而当用户使用键盘操作焦点时,利用 :focus-visible,让可获焦元素获得一个较强的表现样式。...Button 和使用键盘控制焦点点击 Button: [ ] CodePen Demo - :focus-visible example 可以看到,使用鼠标点击,不会触发 :foucs,只有当键盘操作聚焦元素

    1.3K20

    小程序界面设计指南

    减少输入 由于手机键盘区域小且密集,输入困难的同时还易引起输入错误,因此在设计小程序页面时应尽量减少用户输入,利用现有接口或其他一些易于操作的选择控件来改善用户输入的体验。...例如图中,在用户搜索时,提供搜索历史快捷选项来帮助用户快速进行搜索,从而减少或避免不必要的键盘输入。...iOS导航栏 微信进入小程序的第一个页面,导航区只有一个操作“返回”,即返回进入小程序前的微信页面。进入小程序后的次级页面,导航区的操作为“返回” 和“关闭”。...在小程序的次级页面,导航区只有“返回”操作,而点击安卓手机自带的硬件返回键也起到相同作用。 背景色规则 小程序导航栏支持背景颜色自定义,选择的颜色需要满足微信提供的两套主导航栏图标的可用性。...列表 表单输入 按钮 图标 04 — 页面加载 当不可避免的出现了加载和等待的时候,需要给予及时的反馈以舒缓用户等待的不良情绪。

    4.5K70

    使用 Xamarin 开发 iOS 键盘扩展(含网络访问)

    作为一位 .NET 技术的死忠,开发 iOS 应用当然要使用 Xamarin 啦! 本文用我的阅读的文档和实践为素材,介绍如何使用 Xamarin 开发一个 iOS 的键盘扩展。...于是,请阅读这一篇来了解如何搭建 Xamarin iOS 的开发环境: 安装调试工具:Mac 部分 Xamarin开发(Mac开发)环境搭建 - 简书 安装调试工具:Windows 部分 vs2017开发...下图中在 iOS 切换键盘时,Cloud 就是我在 Walterlv.CloudKeyboard 项目中的键盘名称。...必须了解这些知识才不会在一些不太重要的坑上耗费太长时间。 本文教大家如何开发 iOS 键盘插件,主要是项目组织以及写代码。...- Stack Overflow iOS - 输入框有值时才能点击键盘上的returnkey(enablesReturnKeyA… - 简书 objective c - Handling Return

    2.2K10

    手机端页面在项目中遇到的一些问题及解决办法

    点击后消除背景闪一下的 css:-webkit-tap-highlight-color:transparent; 5.Ios 键盘换行变为搜索? 首先,input 要放在 form 里面。...在安卓上面,点击页面底部的输入框,软键盘弹出,页面移动上移。 而 ios 上面,点击页面底部输入框,软键盘弹出,输入框看不到了。。。...简单的说就是:go(-1): 返回上一页,原页面表单中的内容会丢失;back(): 返回上一页,原页表表单中的内容会保留。...-- 可隐藏地址栏,仅针对IOS的Safari(注:IOS7.0版本以后,safari上已看不到效果) --> <!...// 以下支持 webkit touchstart——当手指触碰屏幕时候发生。不管当前有多少只手指 touchmove——当手指在屏幕上滑动时连续触发。

    3.5K30

    如何测试你做的项目的可访问性

    点击上方“IT平头哥联盟”,选择“置顶或者星标” ? 编者按:本文作者:安佳,360 搜索事业部的前端开发工程师,W3C CSS 工作组成员。...键盘的可访问性 重点关注页面上的所有可交互元素,须同时满足以下两点: 元素可被选中,当按Tab键时 元素可交互,当按Enter/空格/箭头键/Esc键时 我们继续以 360课程培训(https://www.so.com...比如: 按“页面结构”导航时,信息有点单薄。比如我想告诉屏幕阅读器用户,页面有搜索区域、筛选区域、列表区域和翻页区域 按“页面结构”导航时,有混入不恰当的信息。...因为它混入了“筛选”区的表单信息,也混入了“翻页”区的按钮区 当用户第一次登录他们不熟悉的页面时,更倾向于用标题导航和页面结构导航;当他们熟悉了之后,按表单控件和按链接导航有利于提高他们的导航效率。...良好的页面可访问性,需要(至少)涵盖以下特性: 足够的对比度 表单控件需要有角色、名字或标签、状态 良好的键盘可访问性:所有可交互的元素可被键盘选中、可与键盘交互;不可交互的元素可以不被聚焦 使用恰当的标题和链接

    1.9K10

    Material Design — 提示框( Dialogs)

    或者考虑能对大量的内容进行优化的可替代的组件。 关闭提示框 提示框可以通过点击提示框外部或点击系统后退按钮(在Android上)来关闭。 有时候,用户必须做出选择动作后才能关闭提示框。...例如,用户可以聆听多个铃声,但只能在触摸“ok”时进行最终选择。 点击确认对话框中的“取消”,或按Android的“后退”,取消操作,放弃所有更改并关闭对话框。 ?...左:选择日期    右:选择时间 取消与确定按钮 确认提示框需要提供明确的确认按钮和明确的取消按钮。 点击取消按钮、返回按钮或离开确认提示框将放弃之前的更改。 ?...全屏对话框可实现复杂的布局,将多个材料堆积的情况简化(提示框上层的提示框),并暂时将app可感知的海拔重置为更高。 全屏对话框允许任务在复杂操作时开启简单菜单或简单提示框。...全屏提示框可用于满足以下标准的内容或任务: ·该提示框包含需要输入编辑器(IME)的组件(如选择器或form fields),例如键盘 ·当没有实时保存更改时 ·当app中没有草稿功能时(无法自动存到草稿

    5.2K101

    Visual Studio 2019 16.1 更新摘要

    大多数最近使用已添加到 Visual Studio 搜索。 调试器 源链接已实现身份验证的改进。 我们已添加到默认符号服务器的列表的 nuget.org 符号服务器。...VSIX 项目模板现在使用新的 SDK 版本。 性能 现在,您可以体验优化功能,可缩短解决方案加载时间的非常大的解决方案。 模板作者可以将自定义标记添加到其模板。...此版本中的 .NET 效率新增功能包括针对未导入类型的 IntelliSense 完成、切换单行注释/取消注释、将命名样式导出到 editorconfig,以及命名空间内/外部的首选 using 的新代码样式设置...查找所有引用都 minimises 使用箭头键时。 无法复制文件"obj\x64\Debug\Management.exe",因为未找到。 Xamarin.iOS 找不到应用程序清单。...运行应用引用库后,删除了项目中的程序集引用。 当将 Visual Studio 2019 从 RC 更新到 GA 时,Visual Studio 的 RC 快捷方式将被保留。

    5.7K40
    领券