我知道还有其他主题,但似乎无法找到实现方法。
我试图将UITextField限制为仅5个字符
最好是字母数字和-和。和_
我看过这段代码
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange,
replacementString string: String) -> Bool
{
let maxLength = 4
let currentString: NSString = textField.text
let newString: NSString =
currentString.stringByReplacingCharactersInRange(range, withString: string)
return newString.length <= maxLength
}
和
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
let length = count(textField.text.utf16) + count(string.utf16) - range.length
return length <= 10
}
我只是不知道如何实际实现它,或者我应该换成我的自定义UITextField换成哪个“ textfield”
您的视图控制器应符合UITextFieldDelegate
,如下所示:
class MyViewController: UIViewController, UITextFieldDelegate {
}
设置文本字段的委托: myTextField.delegate = self
在您的视图控制器中实现该方法: textField(_:shouldChangeCharactersInRange:replacementString:)
全部一起:
class MyViewController: UIViewController,UITextFieldDelegate //set delegate to class
@IBOutlet var mytextField: UITextField // textfield variable
override func viewDidLoad() {
super.viewDidLoad()
mytextField.delegate = self //set delegate
}
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange,
replacementString string: String) -> Bool
{
let maxLength = 4
let currentString: NSString = textField.text
let newString: NSString =
currentString.stringByReplacingCharactersInRange(range, withString: string)
return newString.length <= maxLength
}
对于Swift 4
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let maxLength = 1
let currentString: NSString = textField.text! as NSString
let newString: NSString =
currentString.replacingCharacters(in: range, with: string) as NSString
return newString.length <= maxLength
}
只允许在给定的文本字段中输入一组指定的字符
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
var result = true
if mytextField == numberField {
if count(string) > 0 {
let disallowedCharacterSet = NSCharacterSet(charactersInString: "0123456789.-").invertedSet
let replacementStringIsLegal = string.rangeOfCharacterFromSet(disallowedCharacterSet) == nil
result = replacementStringIsLegal
}
}
return result
}
如何对仅包含最大长度的数字输入的iOS文本字段进行编程
问题内容: 如何覆盖此UITextField函数,使其对最大字符数有所限制? 我已经对堆栈进行了一些研究,但是我只能找到此函数(请参见下文)。首先,我看不到如何覆盖,其次,它使用NSRange作为具有UITextRange的参数。如何实现呢?谢谢 我失败的尝试: 错误:无法将类型“ UITextRange”的值转换为预期的参数类型“ NSRange”(又名“ _NSRange”) 问题答案: 您可
问题内容: 我想设置允许在a 和a中键入的最大字符数。然后,该数字将显示在一个小标签中(供用户参考,Twitter风格。) 问题答案: 更新 Swift 4.X 试试看:
问题内容: 当我尝试过时如何设置可以使用swift输入到UITextField中的最大字符数?,我看到如果我全部使用10个字符,我也无法删除该字符。 我唯一能做的就是取消该操作(一起删除所有字符)。 有谁知道如何不遮挡键盘(以便我不能添加其他字母/符号/数字,但可以使用退格键)? 问题答案: 对于Swift 5和iOS 12,请尝试以下协议实现方法的实现: 该代码最重要的部分是从()到()的转换。
问题内容: 在Swift中,是否可以将最大INT值设置为UITextField? 我的用例是我有5个文本字段,它们需要具有最大的int值。这些值的范围从500一直到10,000。5个不同的文本字段中的每个字段将具有不同的最大值。我不能使用选择器或下拉列表,因为增量将是1。UISlider太难了,无法“擦入”数字。 如果最大int值为5,000,则用户不能(在数字键盘的键盘类型上)输入大于5000的
我得到的问题是,我希望它能够在5个字母最多,有谁可以告诉我如何做到这一点? 谢谢
问题内容: 我想将这个大字符串分成几行,每行中的内容不应超过MAX_LINE_LENGTH个字符。 到目前为止我尝试过的 输出: 它造成 断字 。我不要这个 而不是我想要这样的输出: 添加了另一个条件: 如果单词长度大于MAX_LINE_LENGTH,则该单词应拆分。 解决方案应该没有外部罐子的帮助。 问题答案: 只需逐个单词地遍历字符串,并在单词超过限制时中断。 我只是以徒手的方式输入了该内容,