Tom*_*scu 3 text objective-c uitextview ios
我有一个UITextView,我不希望用户在输入的文本中有任何空格.我怎么办才不允许他使用空格键?谢谢!
Rob*_*Rob 12
你需要
将视图控制器指定为delegate文本视图(可以通过编程方式执行此操作或在Interface Builder中指定委托); 和
您的UITextViewDelegate方法shouldChangeTextInRange需要检查要插入的字符串是否包含空格:
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
if ([text rangeOfCharacterFromSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]].location != NSNotFound) {
return NO;
}
return YES;
}
Run Code Online (Sandbox Code Playgroud)
或者,在Swift中:
extension ViewController: UITextViewDelegate {
func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
return text.rangeOfCharacter(from: .whitespacesAndNewlines) == nil
}
}
Run Code Online (Sandbox Code Playgroud)
注意,这不是检查replacementText是否等于空格,因为这是一个不充分的检查.相反,这是检查是否发生空间的任何位置替换文本里面.这是一个重要的区别,因为可以将文本粘贴到文本视图中,该文本视图可能不等于空格,但可能在粘贴值中的某处包含空格.
| 归档时间: |
|
| 查看次数: |
6244 次 |
| 最近记录: |