Mat*_*ein 33 cocoa objective-c nstextfield
单击按钮时,我想显示一个带有电子邮件+密码提示的工作表,其中包含用于保存和取消的选项.UI已全部设置,操作已就位,工作表显示并按预期取消.问题是我无法在运行时编辑任何一个NSTextField; 它们似乎已禁用,并且当工作表打开时,每次按键都会播放操作系统错误声音.我读到了UIActionSheet是合适的,但这不是iOS应用程序.
文本字段已启用,之前已在另一个面板中工作.我确保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];
}
Run Code Online (Sandbox Code Playgroud)
编辑:我刚刚发现我可以右键单击并将文本粘贴到每个字段中,但我无法选择或删除.似乎NSTextFields没有获得焦点,也没有像往常那样接收键盘输入.我也忘了提到我的Save按钮调用并正确执行其相关方法.
Mat*_*ein 81
事实证明,我随意找到了解决方案,我现在将为后代发布...
用作工作表(NSWindow或NSPanel)的视图需要有一个标题栏.一旦我在Interface Builder的检查器(窗口→外观→标题栏复选框)中切换它,我就会重新编译并且NSTextFields突出显示,选项卡式和接受的输入就像在任何其他视图中一样.不知道为什么标题栏有所作为,但你有它.
Sof*_*LLC 39
视图并不一定要有标题栏.
请参阅 为什么NSWindow没有styleMask:NSTitledWindowMask不能是keyWindow?
哪种状态:如果您希望无标题窗口能够成为关键窗口,则需要创建NSWindow的子类并覆盖-canBecomeKeyWindow,如下所示:
- (BOOL)canBecomeKeyWindow {
return YES;
}
Run Code Online (Sandbox Code Playgroud)
这对我有用.
| 归档时间: |
|
| 查看次数: |
5914 次 |
| 最近记录: |