gpt4 book ai didi

xcode - 在 Storyboard OSX 应用程序中设置 initialFirstResponder

转载 作者:行者123 更新时间:2023-12-04 12:40:06 24 4
gpt4 key购买 nike

类似于 this question ,我正在尝试将第一响应者设置为三个 NSTextField 中的第一个s 在一个非常简单的应用程序中。那里的建议(在界面构建器中设置 Window 的第一响应者)似乎不再适用,至少在涉及 Storyboard 时不适用。 Window对象确实有 initialFirstResponder导出,但我无法通过拖动、ctrl-drag 等方式在往返 NSTextField 的任一方向上进行设置。

IB 提供给我的结构包括一个窗口 Controller 场景(它本身只是一个空窗口),链接到一个 View Controller 场景(它又包含我的一组 NSTextField s 和标签)。

我的怀疑是 Xcode 在我的应用程序中嵌入了一些默认假设/关联,导致 Window Controller 在运行时自动加载特定 View ,这就是为什么无法绑定(bind)它在构建时不知道的初始响应程序的原因时间。这让我想知道哪个对象上的哪个生命周期调用是调用 self.view.window.initialFirstResponder = myTextField 的正确点在为时已晚之前,以及如何最正确地访问该对象。 viewWillAppearviewDidLoad在 View Controller 中感觉不错,但似乎都没有可靠地产生任何效果(最初事件的 NSTextField 因运行而异,有时似乎跟踪代码更改,但有时不是)。

到目前为止,我已经在 GitHub 上发布了代码。

最佳答案

initialFirstResponder仅在 NSWindow 首次出现在屏幕上时应用。根据 Xcode 文档:

`NSWindow initialFirstResponder`
The view that’s made first responder (also called the key view) the first time the window is placed onscreen.

如果您想将某些东西设置为第一响应者,那么您需要调用:

迅速: yourTextField.becomeFirstresponder()
对象-C: [yourTextField becomeFirstresponder];
希望有帮助!

阿德

编辑

我真的把你的 .m 剃成了几行:
    #import "ViewController.h"

@implementation ViewController

#pragma mark - View lifecycle

-(void)viewWillAppear{
[super viewWillAppear];
//[self.userTextField becomeFirstResponder];
[self.pathTextField becomeFirstResponder];
}

#pragma mark - Connection actions

- (IBAction)connectClicked:(id)sender {

}

- (IBAction)cancelClicked:(id)sender {
// Tell the app delegate (once we've actually got a pointer to it) that we want to exit
// [self.delegate exitApplication];
}



@end

我的错!抱歉,viewWillAppear(就在 View 实际显示之前)是您放置 becomeFirstResponder 的位置。

为错误道歉!

关于xcode - 在 Storyboard OSX 应用程序中设置 initialFirstResponder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34965953/

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