gpt4 book ai didi

macos - NSDatePicker 操作方法未触发

转载 作者:行者123 更新时间:2023-12-03 16:13:47 25 4
gpt4 key购买 nike

场景:

用户正在 NSDatePicker 中以文本形式输入日期,没有步进器(在 OS X 上),当他们按键盘上的回车键时,我希望发送一条消息到 Controller 。

NSTextField 中,我只需在 Interface Builder 中挂接操作,或从代码中设置它,当用户按 Enter 键时,操作消息将发送到目标。

日期选择器允许设置操作消息和目标,但我无法触发该操作。当我在日期选择器中按 Enter 键时,不会调用操作消息。

我是否做错了什么,或者是否有我必须使用的解决方法?如果需要的话,我不会反对对所涉及的任何类进行子类化。

最佳答案

NSDatePicker 不会处理或转发由 Return 或 Enter 键触发的按键事件。

解决方案是子类化 NSDatePicker 以获得 keyDown 中所需的行为:

#import "datePickerClass.h"

@implementation datePickerClass
- (void)keyDown:(NSEvent *)theEvent{
unsigned short n = [theEvent keyCode];
if (n == 36 || n == 76) {
NSLog(@"Return key or Enter key");
// do your action
//
} else {
[super keyDown:theEvent];// normal behavior
}
}
@end

就是这样。

编辑:您也可以使用NSCarriageReturnCharacterNSEnterCharacter

NSString* const s = [theEvent charactersIgnoringModifiers];
unichar const key = [s characterAtIndex:0];
if (key == NSCarriageReturnCharacter || key == NSEnterCharacter) {

关于macos - NSDatePicker 操作方法未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10590447/

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