【问题标题】:Detect what's being inputed in a UITextField检测 UITextField 中输入的内容
【发布时间】:2011-01-26 00:27:14
【问题描述】:

我有一个 UITable 视图,其文本字段可在视图上进行编辑(如联系人中的电话等)。我想启用/禁用我的保存按钮条件文本出现在此字段中。所以,我希望按钮以禁用状态开始(对于新记录),然后,只要我在文本字段中输入第一个字母,我希望按钮启用。如果我再次删除回零,我希望禁用该按钮。你明白了。

现在,为了做到这一点,我需要一些方法来检测用户写入时(以及当他完成编辑时)输入的文本。

有人知道怎么做吗?

非常感谢。还是菜鸟……

【问题讨论】:

    标签: iphone objective-c xcode iphone-sdk-3.0 uitextfield


    【解决方案1】:

    试试这个:(来自 UITextInputTraits 的 Apple 文档)

    自动启用ReturnKey

    ​​>

    一个布尔值,指示在用户输入文本时是否自动启用返回键。

    @property(nonatomic) BOOL enablesReturnKeyAutomatically
    

    讨论

    此属性的默认值为 NO。如果将其设置为 YES,则当文本输入区域不包含文本时,键盘将禁用返回键。只要用户输入任何文本,就会自动启用返回键。

    【讨论】:

    • 不是键盘上的返回键,而是导航栏中的一个按钮。我想出了如何使用 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 但你和 jlehr 比我快,我无法理解问题已解决。还是非常感谢。
    【解决方案2】:

    让你的视图控制器采用 UITextFieldDelegate 协议,然后实现几个协议的方法:

    – textFieldDidBeginEditing:
    – textFieldDidEndEditing:
    

    另外,请务必将文本字段的委托属性设置为指向您的视图控制器。然后,文本字段将在编辑会话开始和结束时自动将这些消息发送到控制器。

    【讨论】:

    • 不是这样的,我需要使用 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { 然后测试是否文本长度大于 0。无论如何,非常感谢。
    • @camilo 请考虑写下您的发现并将其发布为您的答案。 SO FAQ 明确允许回答您自己的问题。
    • 我通常将我的发现写成评论,但我承认我没有阅读常见问题解答。但是,当您考虑它时,这是合乎逻辑的。从今以后我就照你说的做。问候。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-22
    • 2011-10-27
    • 2021-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多