swift - 无法形成对 NSTextView 类实例的弱引用

标签 swift

仅使用 Swift,这是我在 AppDelegate.swift 中的代码:

import Cocoa

class AppDelegate: NSObject, NSApplicationDelegate {

    @IBOutlet var window: NSWindow
    @IBOutlet var textField: NSTextView

    @IBAction func displaySomeText(AnyObject) {
        textField.insertText("A string...")
    }

    func applicationDidFinishLaunching(aNotification: NSNotification?) {
        // Insert code here to initialize your application
    }

    func applicationWillTerminate(aNotification: NSNotification?) {
        // Insert code here to tear down your application
    }


}

在界面生成器中,我连接了一个对象以接收来自按钮的输入,然后输出转到 TextView 。当我按下按钮时,我试图让 TextView 填充一些文本。

我也用文本字段尝试过此操作,但没有收到错误,但听到“咚”的错误声音并且没有做任何其他事情。根据我的理解,在 Objective-C 中,您必须使用 (assign) 参数才能使其正常工作。

我做错了什么?

最佳答案

由于 Cocoa 和 AppKit 的历史问题,您不能存储对 NSTextView 的弱引用。参见 details in the Clang documentation . NSTextViewNSTextView.h 中被标记为 NS_AUTOMATED_REFCOUNT_WEAK_UNAVAILABLE , 还有 a few other classes去监视。

您是否尝试过 Swift 无主引用而不是弱引用,这有点像 Objective-C 的赋值(您将在 Objective-C 中用于 NSTextView socket 的内容)?

关于swift - 无法形成对 NSTextView 类实例的弱引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24062437/

相关文章:

ios - 使用两个 UICollectionView 在 UITableView 中显示不同的数据

ios - 匹配单独层次结构中自动布局 View 的宽度

ios - 更改 UIProgressbar 的高度并给出边界和角半径

ios - 如何获取 ForEach 循环内项目的索引?

ios - 有没有办法在 Swift 中自定义 Firebase 电话身份验证发送的短信?

ios - 类型的值...没有成员

ios - 将 Obj-C 桥接到 Swift 之后缺少什么

arrays - 获取数组的总和,保存到核心数据,并在应用程序重新打开后从总和开始?

ios - 画线并用 UIVisualEffectView 填充

ios - 在获取数据之前加载 TableView