Xcode 在NSTextField中对moveUp执行操作

Xcode 在NSTextField中对moveUp执行操作,xcode,keypress,nstextfield,Xcode,Keypress,Nstextfield,所以我刚开始开发一些mac电脑。我的第一个项目是开发一个基于文本的计算器,它只包含两个组件,一个NSTextField和一个NSTextView。TextField接受用户输入并在TextView中显示答案。我想实现的是一个功能,如果TextField处于活动状态,并且按下向上箭头,则输入将通过命令历史记录。我知道如何实现历史记录功能,但不知道如何捕获按键。我搜索并发现一种方法是实现: -(BOOL)控件:(NSControl*)控件文本视图:(NSTextView*)字段编辑器 doComma

所以我刚开始开发一些mac电脑。我的第一个项目是开发一个基于文本的计算器,它只包含两个组件,一个NSTextField和一个NSTextView。TextField接受用户输入并在TextView中显示答案。我想实现的是一个功能,如果TextField处于活动状态,并且按下向上箭头,则输入将通过命令历史记录。我知道如何实现历史记录功能,但不知道如何捕获按键。我搜索并发现一种方法是实现:

-(BOOL)控件:(NSControl*)控件文本视图:(NSTextView*)字段编辑器
doCommandBySelector:(SEL)命令选择器{

问题是,由于我对mac开发还很陌生,我仍然不知道如何实现该功能。

@interface-AppDelgate
@interface AppDelgate <NSTextViewDelegate>

@property IBOutlet (nonatomic,strong) NSTextView* myTextView;

@end

@implementation

-(BOOL) applicationDidLaunch(..) {
  myTextView.delegate = self;
}

- (void)keyUp:(NSEvent *)theEvent {
//check theEvent.keyCode (125=up arrow)
}

@end
@属性IBOutlet(非原子,强)NSTextView*myTextView; @结束 @实施 -(BOOL)应用程序启动(…){ myTextView.delegate=self; } -(无效)键控:(n事件*)事件{ //检查Event.keyCode(125=向上箭头) } @结束
这是textview的一个委托函数。您必须在类中创建文本字段的属性。您链接到的另一个问题的公认答案显示了如何实现该方法。到底是什么给您带来了困难?无法调用keyUp函数。我的NSTextField称为inputString,它有一个“引用插座”作为应用程序代理。这是否正确?这是否意味着我不必设置“inputString.Delegate=self”,因为xcode抱怨说它应该是“\u input…”。。。。“但是如果我更改应用程序,应用程序无法启动。1)正确2)否,它必须是
self.inputString.delegate=self
,因为inputString是AppDelegate的属性。