objective-c - 避免 NSTextField 上的第一响应者出现问题

标签 objective-c cocoa

我需要在一个非常简单的应用程序中更改输入字段的行为: Simple OSX app

每当我启动应用程序时,第一个文本字段就会获得焦点,但我不希望出现这种行为。

我尝试在 IB 中检查“拒绝第一响应者”。它可以工作,但选中此选项后,我无法按“选项卡”按钮在输入字段之间移动。

我该怎么做才能避免启动时焦点并保持使用选项卡键盘按钮移动的能力?

最佳答案

(之前)接受的答案不可靠并且效果不佳。隐藏 NSTextField 的另一个答案也不是很好,因为现在您的 Tab 顺序中有一个新元素。

到目前为止我发现最有效的解决方案是:

在应用程序启动时设置NSTextField拒绝FirstResponderYES

然后,在 Controller 的 viewDidAppear 中,继续将 refusesFirstResponder 设置回 NO

启动后一切都表现完美,并且我没有贪婪的 NSTextField 在应用程序启动时窃取第一响应者。

关于objective-c - 避免 NSTextField 上的第一响应者出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7024224/

相关文章:

macos - 我是否在核心文本中遗漏了一些内容,可以让我看到某个点位于哪一行以及一行的实际高度(包括段落样式)?

iphone - 构建 10x10 UIButton 网格的最佳方法?

objective-c - 如何在 Safari v10.1 中获取 Safari 历史域图像形成缓存

cocoa - 排序变得困惑

cocoa - 动画 NSWindow

macos - 为什么 TrueType 字体在 Mac 上仅使用 "Quadratic Curves"?

objective-c - NSCollectionView : Can the same object not be in the array more than once or is this a bug?

Objective-C:从外部应用程序获取菜单信息

iphone - 当上下文保存在核心数据中时,如何更改实体?

swift - NSTextField 获取购物车位置