У меня есть «лист» как NSWindowController
в Swift для OS X. Я разместил на листе NSView
с пользовательским контроллером в классе под названием CustomView
. Все, что я делаю на листе и в настраиваемом контроллере, отлично работает.вызовите func в NSWindowController из пользовательского класса для NSView
class MySheet: NSWindowController {
//...
}
class CustomView: NSView {
override func drawRect(dirtyRect: NSRect) {
super.drawRect(dirtyRect) {
// Draw some things...
}
}
override func mouseDown(theEvent: NSEvent) {
// Change text on a label (or whatever) in MySheet()
}
}
Теперь мне нужно реагировать на ввод пользователя в CustomView
, в частности, одним нажатием кнопки мыши на точке зрения, а также изменять метку (или другой элемент управления) обратно в MySheet(). Это должно быть очень просто, но я не знаю, как это сделать. Самый большой камень преткновения, который у меня есть, это то, что у меня нет экземпляра MySheet(); он скрыт в способе работы системы. Я могу вернуться к статической функции в MySheet(), но это не позволит мне изменить ярлык или другой элемент управления через @IBOutlet.
Я знаю, что вышеизложенное является скорее всего наивным вопросом, но будет признателен за любую помощь в решении.
Я смущен. Есть ли экземпляр CustomView в окне, контролируемом MySheet? И есть ли представление содержимого окна, загруженного из раскадровки или xib? –