当它有焦点时突出显示ios文本框的简单方法?

Posted

技术标签:

【中文标题】当它有焦点时突出显示ios文本框的简单方法?【英文标题】:easy way to highlight ios text box when it has focus? 【发布时间】:2012-10-31 00:16:40 【问题描述】:

我们的 ios6 应用程序数据输入量大且字体较小,我们希望让用户更容易在屏幕上的许多字段中找到当前关注的字段。

首先,我注意到 iOS 在默认情况下不会做任何事情来吸引用户的注意力到焦点文本字段,这与许多其他平台和应用程序不同。这是因为文本字段应该显示焦点突出显示是明确的设计指南还是隐含的应用商店要求?我不想因为这件小事而将我们的应用程序从应用程序商店中弹出。 ;-)

假设允许突出显示焦点,有没有一种简单的方法可以在文本框获得焦点时在文本框内部或外部显示“发光”,就像我可以使用 box-shadow 在 Web 应用程序上使用 CSS 一样,如 @987654321 @。

最后,您知道哪些 iOS 应用已经完成了我们正在尝试做的事情吗?

【问题讨论】:

【参考方案1】:

我不认为这样做是被禁止的。尽管我认为 Apple 会建议是否有必要标记选定的文本字段,但您应该考虑将视图拆分为多个屏幕。单个屏幕不应该太杂乱。

但是,如果在您的情况下这是不可能的或不想要的,实现“发光效果”的最简单方法是这样(根据需要修改值):

#import <QuartzCore/QuartzCore.h>

textField.layer.masksToBounds = NO;
textField.layer.shadowColor = [[UIColor blueColor] CGColor];
textField.layer.shadowOffset = CGSizeZero;
textField.layer.shadowRadius = 10.0f;
textField.layer.shadowOpacity = 1.0;

(不要忘记将 Quarz 框架添加到您的项目中)

看起来像这样:

【讨论】:

很好的回应,正是我想要的。如果我们想把发光放在里面而不是外面,这也很简单吗? 不,那会更复杂。 UITextField 是由许多不同的视图构建的。在我的脑海中,我会尝试向它添加另一个子视图 - 可能比文本字段小一点 - 将其背景颜色设置为清除,将 userInteractionEnabled 设置为 NO 并如上所述添加阴影。但我没有尝试过,所以不能保证它不会弄乱文本字段;)

以上是关于当它有焦点时突出显示ios文本框的简单方法?的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 WPF 文本框的突出显示文本颜色?

删除焦点上的蓝色突出显示文本

如何在没有焦点的情况下突出显示/选择 wpf 文本框中的文本?

如何在 WinRT/UWP RichEditBox 中保持突出显示的文本失去焦点?

即使焦点在其他对话框上,我们如何才能使 Cedit 控件文本突出显示?

在焦点上选择/突出显示nicedit编辑器的内容[重复]