iphone - 使用 inputView 在 iPhone 上显示 UIPicker 时防止直接键入 UITextField

标签 iphone uitextfield uipicker inputview

我的代码工作得很好,可以在 UITextField 上显示选择器对象(在 UITableViewCell 中)通过使用 inputView UITextField的目的。这会停止显示键盘,但不会阻止某人直接在字段中输入内容。

公平地说,他们只能粘贴一些内容,但即使如此,如果您不想在字段中添加自定义值,也不应该允许这样做。

有办法关闭文本输入吗?我尝试过:

return NO;

textFieldShouldBeginEditing()委托(delegate)方法,但这仅用于阻止字段操作 - 因此不会出现选择器。

还有其他方法可以防止这种行为吗?

提前致谢。

最佳答案

您可以使用UITextFieldDelegate方法

-(BOOL)textField:(UITextField*)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString*)string

每当尝试更改文本字段中的文本时都会调用此函数。您可以做一个简单的检查,以确保 string 值是您期望的值(来自选择器 View 的值),否则丢弃它。如果string值是你想要的,则返回YES,否则返回NO

关于iphone - 使用 inputView 在 iPhone 上显示 UIPicker 时防止直接键入 UITextField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8139920/

相关文章:

android - 信用卡读卡器输出什么样的数据?

iphone - 如何在 Core Text Programming 中设置字体大小和名称?

iphone - 缩放嵌套在 UIScrollView 深处的 subview

ipad - UIPicker/UIActionSheet 在 iPhone 上工作正常但在 iPad 上只有细线

ios - 当 UIButton 调用其选择器操作时获取 EXC_BAD_ACCESS

iphone - NSRunLoop长时间延迟后正在调用我的选择器

validation - ReactiveCocoa - 观察 isFirstResponder 属性和 UITextField 并将clearsOnBeginEditing 设置为 YES

iphone - 我可以在 UITextField 中选择特定的文本 block 吗?

ios - 带有增量和减量按钮的 TextField