iOS Swift 仅启用键盘中的退格键
iOS Swift Enable Only Backspace Key in Keyboard
在我的应用程序中,我对某些 textView
设置了文本限制。例如,在 description
中,我的文本限制为 10000。当 textView 包含超过 10000 个字符时,我只需要在键盘中启用退格键并需要禁用键盘中的所有其他键,是否可能。这是我试过的代码:
func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText string: String) -> Bool {
if(textView == DescriptionText)
{
if range.length + range.location > (self.DescriptionText.text?.characters.count)!
{
return false
}
else if range.location == 0 && string == " "
{
return false
}
let NewLength = (self.DescriptionText.text?.characters.count)! - range.length
return NewLength <= 9999
}
else
{
if range.location == 0 && string == " "
{
return false
}
return true
}
}
在 textfieldShouldChange 中添加以下内容:
if(range.length + range.location > textField.text.length)
{
return NO;
}
NSUInteger newLength = [textField.text length] + [string length] - range.length;
return newLength <= 10000;
我不确定您到底想要什么,但是您可以使用以下行防止用户在 textView 中键入超过 10000 个字符。
func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText string: String) -> Bool {
let textString = (textView.text! as NSString).replacingCharacters(in: range, with: string)
if textView == self.DescriptionText && string.characters.count > 0 {
return textString.characters.count <= 10000
}
return true
}
在我的应用程序中,我对某些 textView
设置了文本限制。例如,在 description
中,我的文本限制为 10000。当 textView 包含超过 10000 个字符时,我只需要在键盘中启用退格键并需要禁用键盘中的所有其他键,是否可能。这是我试过的代码:
func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText string: String) -> Bool {
if(textView == DescriptionText)
{
if range.length + range.location > (self.DescriptionText.text?.characters.count)!
{
return false
}
else if range.location == 0 && string == " "
{
return false
}
let NewLength = (self.DescriptionText.text?.characters.count)! - range.length
return NewLength <= 9999
}
else
{
if range.location == 0 && string == " "
{
return false
}
return true
}
}
在 textfieldShouldChange 中添加以下内容:
if(range.length + range.location > textField.text.length)
{
return NO;
}
NSUInteger newLength = [textField.text length] + [string length] - range.length;
return newLength <= 10000;
我不确定您到底想要什么,但是您可以使用以下行防止用户在 textView 中键入超过 10000 个字符。
func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText string: String) -> Bool {
let textString = (textView.text! as NSString).replacingCharacters(in: range, with: string)
if textView == self.DescriptionText && string.characters.count > 0 {
return textString.characters.count <= 10000
}
return true
}