Tag: uitextfield

键盘显示时如何引发U​​ITextField

初学者在构建自己的应用程序时,最常遇到的问题之一就是在键盘弹出时提高UIView或其众多子类之一。 有数十个Stack Overflow帖子,每个帖子都有数百条评论,所有这些都试图回答这个简单的问题。 即使对于经验丰富的老手来说,这样做也有点麻木,尤其是对于初学者,可能很难筛选所有可能的答案并自己选择最佳的解决方案。 此外,即使有人选择了某个解决方案,他们也常常无法确切了解引擎盖下发生了什么,或者该解决方案的好坏。 这会阻止人们快速学习,并可能导致他们养成不良习惯。 在这里,我将尝试给出解决方案,其背后的思考过程,并深入解释为什么我要这样做。 让我们开始吧。 在开发您在iOS中不确定的东西时,您的第一反应应该是参考Apple文档。 通常,您会发现大量有用的信息(只要您仔细阅读!)。 我在浏览“ 与键盘相关的通知”部分下的UITextField文档时发现了一些花哨的地方: “因为系统响应响应者的更改来管理键盘的显示和隐藏,所以它会发布以下通知来跟踪与键盘相关的更改” 这些通知是: UIKeyboardWillShow UIKeyboardDidShow UIKeyboardWillHide UIKeyboardDidHide UIKeyboardWillChangeFrame UIKeyboardDidChangeFrame 好的,太好了-因此,这些通知会告诉您键盘何时开始执行操作。 但是我们如何收到这些通知? 在iOS中,我们使用NSNotificationCenter(如果您使用的是Swift,则使用NotificationCenter)在整个应用程序中发送或接收通知。 如果您不太了解iOS中的通知,请稍后再回来查看我的通知博客文章。 在开始研究方面,我们几乎有所需的东西! 我们希望收听这些通知的发布,并在收到通知时可以调整我们的UI,以使一切看起来都很好。 让我们编码。 创建一个新项目(命名为任何名称) 打开情节提要文件,并使用自动布局将UITextField固定到视图控制器的底部。 添加前导约束,以便我们定义x值 添加尾随约束,以便我们定义宽度 添加底部约束,以便我们定义ay值 如果我们现在运行该应用程序并按文本字段,则键盘将显示并覆盖文本字段。 现在让我们修复它。 3.在ViewController.swift中,将以下代码添加到viewDidLoad函数中: NotificationCenter.default.addObserver(自身,选择器:#selector(ViewController.keyboardWillShow),名称:NSNotification.Name.UIKeyboardWillShow,对象:nil)NotificationCenter.default.addObserver(自身,选择器:#selector(ViewController.keyboardWillHide),名称: NSNotification.Name.UIKeyboardWillHide,对象:无) 在这里,我们正在默认的通知中心注册我们的视图控制器,以便可以在显示或隐藏键盘时进行更新。 您会注意到,对于选择器,我使用了文件中尚不存在的函数-现在让我们将它们写出来。 4.将以下函数头添加到ViewController.swift: @objc func keyboardWillShow(通知:NSNotification){} @objc func keyboardWillHide(通知:NSNotification){} 5.现在,我们需要获取键盘更新后的大小信息。 可通过传入的NSNotification参数userInfo对象获得此信息。 userInfo对象是可选的,因此我们需要先对其进行拆包以验证其存在: 守护让userInfo = notification.userInfo else {return} 6.为了获得键盘的大小,我们需要使用键UIKeyboardFrameEndUserInfoKey访问userInfo字典。 […]

在iOS中的UITableViewCell中自动扩展文本输入

在iOS中动态扩展视图从未如此简单。 正如我们在iOS的早期版本中所看到的,如果我们需要一个UILabel来根据其内容高度来计算高度,我们可以这样做,但是需要基于内容文本,字体,UILabel宽度等进行一些手动高度计算。它通过调用sizeToFit方法来增长。 对于文本输入,这从来都不是一件容易的事。 如果我们使用UITextField ,我们知道它最多只能输入一行。 对于多行输入,我们使用UITextView并使它可编辑。 但是问题是,我们必须设置它的高度或边界约束。 如果输入内容的高度超过了UITextView的高度,则它不会扩展,而是在该高度内内容可以滚动。 UITableViewCell的动态高度计算更加复杂。 但是在具有自动布局功能的iOS 8之后,生活变得更加轻松,因为苹果终于对它进行了外观设计。 好吧,这里的要求有些不同。 我们需要一个文本输入视图,该视图会随着内容高度的变化而自动增长/缩小。 这是操作方法。 首先,让我们创建一个Xcode项目并添加UITableViewCell的新子类。 说,我们的子类名称是QACell。 因此,让我们打开QACell.xib并根据您的要求添加TextView或UITextView的任何子类。 让我们在UITextView的顶部,底部,左侧,右侧添加边界约束,以便当UITableViewCell的高度发生变化时,其高度可以增加/缩小。 因此,添加约束后,它应该看起来像这样。 现在,打开UITextView的“属性”检查器,并禁用“滚动和弹跳”。 我们必须禁用滚动,因为启用滚动时,UITextView的框架与其内容大小无关。 但是当被禁用时,它们之间是有关系的。 我建议禁用跳动,因为我们需要在UITextView发生的每次更改时都更新UITableViewCell,当启用跳动并且TextView高度发生更改时,我们会有意外的跳动,这是我们所不希望的。 现在,让我们打开QACell.swift并为我们正在使用的UITextView添加一个IBOutLet。 然后是棘手的部分。 我们需要观察UITextView中内容的变化,这意味着当我们在UITextView实例中键入用户时,我们需要知道。 我们知道该怎么做,对吗? 我们需要实现UITextViewDelegate协议,并重写textViewDidChange(textView:UITextView)方法。 在这一阶段,我们知道用户何时通过委托在其中键入内容。 正如我们可以看到的变化一样,当发生变化时,我们必须通知UITableView更新当前UITableViewCell实例的高度。 但这不只是像往常一样重新加载单元格,因为如果我们重新加载单元格,则在键入每个字符之后,单元格将被重新加载,并且焦点将从当前UITextView实例中丢失。 因此,我们将无法正确键入。 而且,如此多次更新Cell绝对是一项昂贵的操作。 因此,让我们解决问题。 因为我们需要将输入更改的信息传递给我们的UITableView,所以我们将通过委托进行操作。 因此,让我们在其中编写一个协议和一个委托方法。 协议ExpandingCellDelegate { func updateCellHeight(indexPath:NSIndexPath,comment:String) } 现在,当UITextView实例的内容更改时,我们将调用委托方法。 因此,实现此协议的类(我们的ViewController)获得了更新特定UITableViewCell实例所需的消息。 在我们的代码中看起来像这样。 func textViewDidChange(textView:UITextView){ self.delegate.updateCellHeight(self.cellIndexPath,注释:textView.text) } 在这个阶段,我们已经完成了构建基础。 现在我们必须把这个事情付诸行动。 让我们打开具有UITableView的ViewController并实现UITableViewDataSource,UITableViewDelegate协议。 而且,实现我们之前创建的ExpandingCellDelegate 。 在cellForRowAtIndexPath中为QACell设置必要的数据源和属性,并像下面的代码一样设置委托。 cell.answerTextView.scrollEnabled […]

UITextField

Merhaba土耳其语Kitokuyucuları,UIKit serisi ilekarşınızdayız! Bugünkükonumuz UITextField。 Vakit kaybetmedenbaşlayalım😉 Öneri! 请按一下UIButton和UILabel,然后再单击Linklerden bilgi alabilirsiniz。 🤗 UILabel UIButton UITextField Nedir吗? UITextFieldkullanıcıileetkileşimegiren ve genelliklekullanıcınınbir metin girmesiiçinkullanılanUI elementidir。 巴尼尔(GenelBakış) UITextField sadecekullanıcınınmetin girmesiiçinkullanılmaz。 İsterisindebir metin degösterilebilir。 UITextField elementinin文本区域,游标区域背景和背景区域。 UITextField elementini kod veya接口生成器aracılığıylaekleyebilirsiniz。 库兰尼姆·阿兰拉里 Kullanıcıileetkileşimliolan bir uygulamadaçoğuzamankullanıcıadı,soyadı,şifre,yaş,telefonnumarasıgibi birçokbilgikullanıcıdanistenir。 请参见UITextField元素。 UITextFieldYapısı 光标: Yazıalanındakidikey inceçizgidir。 Klavyeden girilen bilginin etkiedeceğiyerigösterenarayüzelemanıdır。 占位符:在UITextField elementin中,请参见UITextField elementin中的内容。 Girşmişbir uygulamayaptığımızdabirden fazla […]

如何在100个文本字段中查看ios swift

表格视图100中的单元格的数目和每个有文本字段的单元格以及何时滚动值应该出现在文本框中。 和另一个LABEL在Table视图中显示没有索引。

如何在iOS 5中添加多个UITextfield?

如何创build和添加多个UITextField到我的控制器? 我可以创build一个,就像这样: UITextField *tf = [[UITextField alloc] initWithFrame:CGRectMake(5,5,100,25)]; tf.borderStyle = UITextBorderStyleRoundedRect; [tf setReturnKeyType:UIReturnKeyDefault]; [tf setEnablesReturnKeyAutomatically:YES]; [tf setDelegate:self]; [self.view addSubview:tf] 但是,我需要为每个UITextField做这个吗? 什么是模板UI控件的最佳方法?

iOS的Objective-C的UITextFielddate格式

我正在尝试创build一个信用卡处理视图控制器。 我有一个到期date字段,我想将其格式化为MM / YY。 我试图从这里的UITextField格式在xx-xx-xxx中的片段,但它使用NSNumber时使用的过期date有一个领先的0它不起作用。 我search谷歌,也没有出现。 前导零被删除。 如何在用户input时使用UITextField将其设置为MM / YY格式(例如05/16)? 这是可能的,因为Stripe的到期date的UITextField确实在他们的库中。

iOS中的UITextField边框样式在swift中

我已经添加了这个图像,我希望你能看到它,一个用户界面login。 请注意,文本字段是透明的,除了底部的行外。 为了得到这种影响,我需要input什么代码? 我可以将必要的信息放在“用户定义的运行时属性”中吗?

如何更新ios中的textfield值

我有一个像使用NSNumberFormatter 100,000个文本字段值,现在我想编辑我的文本字段,再添加一个0。 之后我想要像1,000,000这样的文本改变,但我的文本字段值更改为0

未调用UITextFieldDelegate方法

我正在遵循Big Nerd Ranch iOS编程书(Swift版本),我有这个文件。 import UIKit class ConversionViewController: UIViewController, UITextFieldDelegate { @IBOutlet var celsiusLabel: UILabel! @IBOutlet var textField: UITextField! func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { print("here") return true } //rest of the code here } 出于某种原因,不调用textField委托方法。 我无法在控制台中看到“这里”日志。 我已经多次检查命名和语法。 有任何想法吗?

如何访问静态TableViewcell中的文本框而不创build引用出口?

我有很多文本字段静态放置在静态TableViewcells。 如何访问其中的文本,而不创build每个文本字段的引用出口? 我已经尝试了细胞的子视图。 这不起作用。 任何替代品? 我试过这个。 这不起作用。 – (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell = [super tableView:tableView cellForRowAtIndexPath:indexPath]; for (UIView *subview in [cell subviews]){ if([subview isKindOfClass:[UITextField class]]){ UITextField *inputField = (UITextField *)subview; NSLog(@"%@",inputField.text); } } return cell; }