Macos makeFirstResponder赢得';不编译
我有一个按钮数组和一个关联的NSTextView数组(嵌入在NSScrollView中),所有这些都是通过编程创建的。所有这些都是在一个程序(日历)中完成的,它可以尽可能地进行编译和工作 但是,我希望单击一个按钮,使关联的文本字段的行为就像我直接在其中单击一样(光标和焦点环出现,它接受文本)。现在,我必须单击按钮和文本框才能开始输入文本 看起来“makeFirstResponder”应该做我想做的事情,但它不会在我试图做的时候编译 以下是相关代码: (全部在单个视图控制器中) 全球宣言:Macos makeFirstResponder赢得';不编译,macos,swift,Macos,Swift,我有一个按钮数组和一个关联的NSTextView数组(嵌入在NSScrollView中),所有这些都是通过编程创建的。所有这些都是在一个程序(日历)中完成的,它可以尽可能地进行编译和工作 但是,我希望单击一个按钮,使关联的文本字段的行为就像我直接在其中单击一样(光标和焦点环出现,它接受文本)。现在,我必须单击按钮和文本框才能开始输入文本 看起来“makeFirstResponder”应该做我想做的事情,但它不会在我试图做的时候编译 以下是相关代码: (全部在单个视图控制器中) 全球宣言: var
var arrayOfButtons:[NSButton] = []
var arrayOfFields: [NSTextView!] = []
var arrayOfWindows: [NSScrollView!] = []
创建字段数组:
var i = 0
var myLocalText: NSTextView! = NSTextView(…
var myLocalWindow: NSScrollView! = NSScrollView(…
for i = 0; i <= 6; i++ {
var myLocalText: NSTextView! = NSTextView(…
var myLocalWindow: NSScrollView! = NSScrollView(…
view.addSubview(myLocalWindow)
myLocalWindow.hasVerticalScroller = false
myLocalWindow.focusRingType = NSFocusRingType(rawValue: UInt(2))! // I didn’t get a focus ring until I did this
myLocalWindow.addSubview(myLocalText)
myLocalWindow.documentView = myLocalText
myLocalText.editable = true
myLocalText.selectable = true
myLocalText.verticallyResizable = true
self.arrayOfFields.append(myLocalText)
}
在Mac OS X中,
makeFirstResponder
是一种NSWindow方法,而不是NSView方法。请尽量避免不必要的介绍性和结束性问题。真的吗?为什么我认为如果我没有提到这一点,其他人会抱怨“信息不足”或“你想做什么?”:-)实际上我可能会这么说。:)谢谢我会调查的,“调查”什么?事情就是这样。除了文档之外,没有什么可以“查看”的,文档可以告诉您这一点,而不会浪费堆栈溢出带宽。好吧,我很高兴您对我的第一个回答微笑:-)试试这个怎么样?我做到了,而且成功了(是的,你知道的)。因此,编译器错误是误导性的——谢天谢地,这种情况从来没有发生过!这是斯威夫特的错误信息如何具有误导性的绝对经典案例。它不是说您根本无法将makeFirstResponder
发送到NSView,而是告诉您参数列表有问题。如果你有时间,向苹果公司提交一个bug;这种类型的错误消息会造成很多不必要的麻烦,您有一个很好的用例来说明这一事实。
…
view.makeFirstResponder(arrayOfFields[tag]) // THIS IS THE SUBJECT OF MY QUESTION
// IT GIVES A COMPILER ERROR AS FOLLOWS: “Cannot invoke ‘makeFirstResponder’ with an argument list of type ’NSTextView’”
// as far as I can tell from the documentation, makeFirstResponder should accept an argument type of NSResponder, and NSTextView should inherit from that