首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UITextFieldDelegate "shouldChangeTextInRange“未被调用

UITextFieldDelegate "shouldChangeTextInRange“未被调用
EN

Stack Overflow用户
提问于 2015-10-22 07:42:40
回答 2查看 3.1K关注 0票数 2

我有一个UITextField,我想对它使用正则表达式。我想用

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text

方法来自UITextFieldDelegate

在我的XIB文件中,委托被设置为File的所有者。在.h-文件中,将协议设置为UIViewController<UITextFieldDelegate>

textFieldDidEndEditingtextFieldDidBeginEditing工作正常。

shouldChangeTextInRange没有被调用,但是为什么?

诚挚的问候

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-22 07:47:42

这是因为您是在UITextView而不是UITextField上实现委托。你应该实施:

代码语言:javascript
复制
- (BOOL)textField:(UITextField *)iTextField shouldChangeCharactersInRange:(NSRange)iRange replacementString:(NSString *)iString
票数 6
EN

Stack Overflow用户

发布于 2015-10-22 07:56:01

您实现了UITextViewDelegate方法,并尝试委托它UITextField。试试看;

Obj;

代码语言:javascript
复制
- (BOOL)textField:(UITextField *)iTextField shouldChangeCharactersInRange:(NSRange)iRange replacementString:(NSString *)iString

斯威夫特

代码语言:javascript
复制
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33275712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档