slo*_*rGJ 1 macos cocoa nstextfield swift
如何在Swift中将多个NSTextfields(OSX cocoa app,而不是iOS)中的最大字符数设置为一个?
请解释一下如何做到这一点,因为我在OSX应用程序开发方面是一个完全新手,因此我不理解像"使用NSFormatter"这样的简短答案,因为我不知道它是什么以及如何实现它.像例子
我认为没有内置的方法可以简单地设置最大值,因为你需要决定你想要的行为.例如,如果字段中已经有一个字符,并且用户输入了第二个字符,那会发生什么?第二个字符应该被忽略吗?替换第一个?嘟?
在任何情况下,您都可以使用NSText Delegate方法获得所需的任何行为.使您的视图控制器(或任何具有逻辑的对象)成为文本字段的委托,并实现各种委托方法以执行您所需的操作.
同样,确切的行为取决于你,但如果我实现这一点,我可能倾向于使文本字段始终使用输入的最后一个字符(这样,如果一个字符已经存在,按下第二个字符替换第一个字符) .为此,您需要覆盖textDidChange以查看文本字段的值,并在适当时进行修改.就像是:
class ViewController: NSViewController, NSTextFieldDelegate {
@IBOutlet weak var textField: NSTextField!
override func controlTextDidChange(obj: NSNotification) {
if self.textField.stringValue.characters.count > 1 {
self.textField.stringValue = String(self.textField.stringValue.characters.last!)
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1330 次 |
| 最近记录: |