单击某个按钮时,我想显示带有电子邮件+密码提示的工作表,并提供保存和取消选项。用户界面全部设置完毕,操作已到位,表单出现并按预期取消。问题是我无法在运行时编辑任何NSTextFields;它们显示为禁用,并且在打开表单时每次按键都会播放操作系统错误声音。我读到的SO UIActionSheet是合适的,但这不是一个iOS应用程序。无法在运行时在工作表中编辑NSTextField
textfields已启用,并且以前一直在另一个面板中工作。我确定IBAction链接完好无损,但我甚至不确定如何排除故障。
如何处理表单会导致健康的NSTextField拒绝输入?
// show the sheet
-(IBAction)showAccount:(id)sender {
[NSApp beginSheet:accountWindow
modalForWindow:prefsWindow
modalDelegate:self
didEndSelector:NULL
contextInfo:NULL];
}
// cancel/hide the sheet
-(IBAction)cancelAccount:(id)sender {
[NSApp endSheet:accountWindow];
[accountWindow orderOut:nil];
}
编辑:我刚刚发现,我可以右键单击并将文本粘贴到每个字段中,但我无法选择或删除。看起来NSTextFields没有得到关注,也没有像往常一样接收键盘输入。我也忘记提及我的Save按钮调用并正确执行其相关的方法。
这对我来说很有效,并且使它更容易,因为我由于标题栏而不必重新编码。 – evilgoldfish
这是更好的答案。我不知道他们为什么将这个作为无标题窗口的默认行为,并且是通过委托来控制的,但是我用这个方法使用了一个子类,并且工作正常。 –
这个*可以*在应用程序中通过一个类别被默认设置。看到[这个答案](http://stackoverflow.com/questions/7214273/nstextfield-on-nspopover) – cbedrosian