Я пытаюсь разрешить пользователю выбирать файл .png для открытия, щелкнув файл в строке меню приложения, а затем открыть файл Microsoft Word таким же образом.Быстрая передача глобальных переменных в функцию @IBAction?
Проблема заключается в том, что кажется, что @IBAction func SelectFileToOpen(sender: NSMenuItem) {}
не может получить доступ к глобальным переменным, или установить их, и, кажется, совершенно не зависит от остальной части кода
вот мой код, предназначенный для демонстрации того, как метод не может читать глобальные переменные :
//
// AppDelegate.swift
// Swift class based
//
// Created by ethan sanford on 2015-01-16.
// Copyright (c) 2015 ethan D sanford. All rights reserved.
//
import Cocoa
@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
func applicationDidFinishLaunching(aNotification: NSNotification) {
// Insert code here to initialize your application
}
func applicationWillTerminate(aNotification: NSNotification) {
// Insert code here to tear down your application
}
var myURL=NSURL(fileURLWithPath: "")
@IBAction func btnConcat(sender: NSButton) {
myURL = NSURL(fileURLWithPath: "///Users/ethansanford/Desktop/BigWriting.png")
var say_something = "set URL button clicked"
print(say_something);
print(myURL)
}
@IBAction func SelectFileToOpen(sender: NSMenuItem) {
var say_something = "Menu bar, file-open clicked:"
print(say_something);
print(myURL);
}
@IBAction func communicate(sender: AnyObject) {
var say_something = "communicate button clicked:"
print(say_something);
print(myURL);
}
}
Вот NSlog
производится из этого кода. Обратите внимание на то, что кнопка URL и методы кнопки commincate могут совместно использовать переменную myURL, но кнопка открытия файла, кажется, не в состоянии:
URL button clickedOptional(file://///Users/ethansanford/Desktop/BigWriting.png)
communicate button clicked:Optional(file://///Users/ethansanford/Desktop/BigWriting.png)Menu bar
file-open clicked:nil
communicate button clicked:Optional(file://///Users/ethansanford/Desktop/BigWriting.png)
мне нужна переменная myURL
, чтобы иметь возможность использовать во всех трех методов. Это необходимо позже, когда мне нужны эти методы для связи, поэтому я могу выбрать пользователей и отобразить их в изображении. Спасибо за любую помощь, которую вы можете предоставить. Я считаю, что проблема связана с кнопкой файла в строке меню.
Может ли кто-нибудь объяснить мне, как обойти эту проблему?