当用户按下 'enter' 或 'return' 以外的键时调用操作
Call action when user presses key other than 'enter' or 'return'
我知道当用户按下键盘上的 'return' 键时调用函数非常简单,但我想知道是否可以使用任何其他键进行类似的操作。就我而言,我想知道用户何时按下 'comma'。我正在尝试实现类似于 mac 上的 Mail 在地址栏中所做的功能,如果您在其中键入逗号,文本将变为不同的视图。
这就是我所引用的:
你可以试试这个方法:
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
if ([string isEqualToString:@","]||[string containsString:@","]) {
NSLog(@"trigger method"); //call your method
}
return YES;
}
对于Swift:
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
if string.isEqualToString(",") || string.containsString(",") {
NSLog("trigger method")
}
return true
}
注意:不要忘记设置文本字段委托并在您的界面中提及 UITextFieldDelegate。
self.textField.delegate=self;
所以每次你按逗号,你都可以调用你的 method.As @rmaddy 建议,如果用户粘贴了逗号字符或任何包含逗号的文本,那么这个方法也会触发对你自己的调用方法。
我知道当用户按下键盘上的 'return' 键时调用函数非常简单,但我想知道是否可以使用任何其他键进行类似的操作。就我而言,我想知道用户何时按下 'comma'。我正在尝试实现类似于 mac 上的 Mail 在地址栏中所做的功能,如果您在其中键入逗号,文本将变为不同的视图。
这就是我所引用的:
你可以试试这个方法:
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
if ([string isEqualToString:@","]||[string containsString:@","]) {
NSLog(@"trigger method"); //call your method
}
return YES;
}
对于Swift:
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
if string.isEqualToString(",") || string.containsString(",") {
NSLog("trigger method")
}
return true
}
注意:不要忘记设置文本字段委托并在您的界面中提及 UITextFieldDelegate。
self.textField.delegate=self;
所以每次你按逗号,你都可以调用你的 method.As @rmaddy 建议,如果用户粘贴了逗号字符或任何包含逗号的文本,那么这个方法也会触发对你自己的调用方法。