のために働いていないことは、私が持っているものです:セキュアテキスト.echosbulletsは、パスワードフィールドここ
@IBOutlet weak var password: NSSecureTextField!
@IBOutlet weak var shwpswd: NSButton! //Checkbox
@IBOutlet weak var pswdcell: NSSecureTextFieldCell! //Cell
@IBAction func shwpswd(_ sender: Any) {
if(shwpswd.state == 1) {
pswdcell.echosBullets = false // Turn the Secure text into regular text
}
else if(shwpswd.state == 0) {
pswdcell.echosBullets = true // Secure text
}
}
すべてが弾丸をエコーとエコーの間で状態を変更しませんパスワードフィールド内のテキストを除いて、正常に動作しているようです実際のテキストすべてが正しくリンクされています - セルはテキストフィールド内にあり、パスワードボタンはビューにあり、コンセントは機能します。私はこれがMacのSwiftの別のものであるかどうか疑問に思っています。< iOSの場合のSwift。
EDIT:誰もがそれを見て気にしなければならないここで、最終的な解決策である:
@IBOutlet weak var shwpswd: NSButton! //Checkbox
@IBOutlet weak var visPswd: NSTextfield! //hidden regular box to show chars
@IBOutlet weak var password: NSSecureTextField! //visible initial secure box
@IBAction func shwpswd(_ sender: Any) {
if(shwpswd.state == 1) {
self.visPswd.stringValue = self.password.stringValue //Sync both the text fields
self.password.isHidden = true //hide the secure field
self.visPswd.isHidden = false //show the real character echo field
}
else if(shwpswd.state == 0) {
self.password.stringValue = self.visPswd.stringValue //Sync the two
self.password.isHidden = false // Inverse of above
self.visPswd.isHidden = true
}
}
注テキストフィールドpassword
とvisPswd
は、ビュー内の同じサイズと位置している - 1のままにすべての回で隠されました重複を避ける。ユーザーがpassword
またはvisPswd
フィールドに値を入力すると、チェックボックスの状態が変更されると、他のフィールドと同期します。
:あなたの実装では、次のようなもののようになります。 – Ckacmaster