我需要在OS X Cocoa中创建一个视图,该视图隐藏除最后输入的字符以外的所有内容(直到该字符在设定的时间后隐藏)。基本上我想在OS X Cocoa中使用UITextField
和textfield.secureTextEntry = YES
。在OS X中实现iOS密码输入视图Cocoa
我找不到在OS X Cocoa中导入UITextField
的方法。我不认为这是可能的,因为NSTextField
和UITextField
来自两个不同的框架。
NSSecureTextField
在OS X可可不保持最后一个字符在设定的时间内可见,我找不到可以设置的实例或类属性来改变这种行为。
我试图推出我自己的实施,从NSTextField
开始,并从keyUp:
触发事件,但我遇到了角落案件的问题。我目前的做法是将存储在NSTextField
中的文本更改为隐藏字符(除最后一个字符外,所有时间等)。然而,使用这种技术,当用户在7个字符的密码中选择第2个至第5个字符并删除它们时会发生什么情况。那我怎么才能找出哪些隐藏字符被删除了,这样我就可以检索到正确的输入密码了?
所以我认为如果我需要推出我自己的实现,我不需要更改NSTextField
中存储的实际文本,而是改变视图在屏幕上的显示方式。但是我目前无法找到一种方法来实现这一点。帮助在这里将不胜感激。
我还会说,我有强烈的偏见,不推出我自己的实施。如果有人知道我可以利用之前的工作方式,或者只是将UITextField
导入到OS X Cocoa来解决这个问题,我会欢迎(并且非常青睐)这些解决方案。
嗯,我对这个想法有点分歧。 UITextField的行为方式之所以如此,是因为屏幕键盘比普通桌面键盘更难使用(较小的键盘尺寸,没有触觉反馈等)。在OS X上有什么目的来重现这一点? (不包括你的问题,我只是好奇) – dreamlax 2013-02-26 00:37:46
你可以继承'NSTextField'并提供一个自定义的'drawRect:',但我想你可能实际上需要提供一个自定义的'NSTextFieldCell',并覆盖它的'drawRect: inView:'方法。 – dreamlax 2013-02-26 00:39:36