【发布时间】:2018-10-19 12:41:44
【问题描述】:
如何在打开应用程序时关注文本字段?
斯威夫特 4, Xcode 10, macOS
回答:
感谢@Willeke 在 cmets 的建议,我是这样做的:
import Cocoa
import AppKit
import Foundation
let defaults = UserDefaults.standard
class ViewController: NSViewController{
@IBOutlet weak var addDomain: NSTextField!
@IBOutlet weak var addSiteField: NSTextField!
@IBOutlet weak var tableView: NSTableView!
@IBOutlet weak var removeSite: NSSegmentedControl!
override func viewDidAppear() {
super.viewDidAppear()
addDomain.window?.makeFirstResponder(addDomain)
}
因为: https://developer.apple.com/documentation/appkit/nsresponder/1526750-becomefirstresponder
使用 NSWindow makeFirstResponder(_:) 方法,而不是 becomeFirstResponder() 方法,使对象成为第一响应者。 切勿直接调用此方法。
【问题讨论】:
-
仅供参考:您可以在帖子中粘贴代码,而不是 IDE 中的图像。这对您和您的问题的读者来说更容易。有一个很好的编码:)
-
始终将代码、数据、日志、错误消息等作为文本(而非图像)发布,以便它们可以搜索,并且可以在回答时复制。请edit你的问题
-
不要打电话给
becomeFirstResponder。 “使用 NSWindow makeFirstResponder: 方法,而不是这个方法,使对象成为第一响应者。永远不要直接调用这个方法。” -
@Willeke 谢谢!照你说的做了。请检查帖子。现在我做对了吗?
标签: swift macos nstextfield