我正在尝试实现的是UITextField
将单词视为字符。具体来说,我试图将数学表达式 sin( 例如作为一个字符。我想通过实现我自己的 UITextInputDelegate 来解决这个问题。但是,当我实现或采用这个协议时,这个协议中的四个必需函数永远不会被调用。我尝试通过以下方式实现它:
通过子类化 a UITextField
。
@interface BIDUItextFieldDelegate : UITextField < UITextInputDelegate >
通过继承一个 NSObject。
@interface BIDTextfieldInputDelegate : NSObject < UITextInputDelegate >
对应的 .m 文件包含:
@implementation BIDTextfieldInputDelegate
- (void)selectionWillChange:(id <UITextInput>)textInput
{
NSLog(@"sWill");
}
- (void)selectionDidChange:(id <UITextInput>)textInput
{
NSLog(@"sDid");
}
- (void)textWillChange:(id <UITextInput>)textInput
{
NSLog(@"tWill");
}
- (void)textDidChange:(id <UITextInput>)textInput
{
NSLog(@"tDid");
}
例如,对于第二种方法(通过子类化 NSObject),我在应用程序中显示的附加自定义 UITextfield 类的 (id) init 方法中执行以下操作:
//textInputDel is an instance of the custom NSObject class that adopts the above UITextInputDelegate protocol
self.textInputDel = [[BIDTextfieldInputDelegate alloc] init];
self.inputDelegate = self.textFieldDel;
有谁知道我做错了什么,或者有更好的解决方案?