gpt4 book ai didi

objective-c - NSTextField 输入触发 Action

转载 作者:太空狗 更新时间:2023-10-30 03:21:13 25 4
gpt4 key购买 nike

我一直在寻找一个简单的示例,说明如何在文本字段中按下回车键时触发操作(或按钮)。

我应该将文本字段子类化吗?我需要设置一个委托(delegate)来调用我需要的操作吗?有没有办法在我的主窗口 Controller 类中捕获事件?

如果您能为我指出正确的方向,那就太好了。谢谢。

最佳答案

已接受答案的评论中引用的网站...现在已被网络托管商“暂停”,并且 Google 缓存没有包含关键步骤的屏幕截图。

所以,这是我发现的替代解决方案:

  1. 完美运行
  2. 不需要子类化

对于某些键(Enter、Delete、Backspace 等),Apple 不会调用正常的 controlTextDidEndEditing: 等方法。取而代之的是,Apple 为每个魔术键都做了单独的选择器——但是有一种方法可以用来拦截它。

Apple 的官方文档在这里:

https://developer.apple.com/library/mac/documentation/TextFonts/Conceptual/CocoaTextArchitecture/TextEditing/TextEditing.html#//apple_ref/doc/uid/TP40009459-CH3-SW31

...但如果它消失/移动,请将此方法添加到您的委托(delegate)中:

- (BOOL)control:(NSControl *)control textView:(NSTextView *)fieldEditor doCommandBySelector:(SEL)commandSelector
{
BOOL retval = NO;

if (commandSelector == @selector(insertNewline:)) {

retval = YES; // causes Apple to NOT fire the default enter action

// Do your special handling of the "enter" key here

}

NSLog(@"Selector = %@", NSStringFromSelector( commandSelector ) );

return retval;
}

在我的例子中,我也想覆盖退格键——用这种方法运行应用程序,我得到的输出说选择器是“deleteBackward:”,所以我在其中添加了另一个 if 语句来对此使用react。

关于objective-c - NSTextField 输入触发 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2635132/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com