【问题标题】:Spelling in NSTextField with Swift使用 Swift 在 NSTextField 中进行拼写
【发布时间】:2016-06-11 15:44:57
【问题描述】:

如何使用 swift 检查NSTextField 的拼写?我已经在使用controlTextDidChange 来验证文本。 This solution 似乎提到将第一响应者转换为 NSTextView 但我不确定是否可以通过 swift 强制使用。我知道如果我改为NSTextView 会更容易,但如果可能的话,我想避免这种情况。

【问题讨论】:

  • 所以几个月前我帮您解决了这个问题,现在路过的人发表了一条评论,我不确定我是否已完全回答。你能帮他吗,在我的回答下面? (谢谢!)
  • 嗨@JohnRamos - 没问题!
  • 谢谢!!非常感谢。

标签: swift macos nstextfield spelling


【解决方案1】:

这应该可以帮助你。

// Focus TextField
phraseTextField.becomeFirstResponder()
// Enable Continous Spelling
let textView: NSTextView = (self.window!.firstResponder as! NSTextView)
textView.continuousSpellCheckingEnabled = true

改编自:How do I enable spell checking within an NSTextField on Mac OS X?


在其他情况下,将NSTextFields 更改为NSTextViews 可能会更好。只需使用“文本视图”(在对象库中搜索 NSTextView),拼写检查将默认打开。据我所知,NSTextFields 在某些情况下根本不支持拼写检查。

另请咨询:https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSTextView_Class/#//apple_ref/doc/uid/20000373-SW55

【讨论】:

  • 我认为这种方法在大多数情况下都可以使用,但是为了增加复杂性,它是一个没有菜单的 NSStatusBar 应用程序。所以在我的情况下,上面的代码只是挂起应用程序。
  • @glenstorey 我修改了我的答案,如果有帮助请告诉我!!
  • 嘿 - 所以我在谷歌搜索后回到了这个问题,结果你的解决方案非常有效(只是当你现在在 viewDidLoad 中执行 .becomeFirstResponder 时,原因很明显)。非常感谢!
  • @glenstorey 很高兴我能帮上忙!
  • 我需要把这段代码放在哪里?我对 swift 很陌生,并试图让它工作,因为 NSTextView 不允许切换到下一个字段。我在 ViewController.swift viewDidLoad 中尝试过,然后看到了上面的评论。我得到的错误是 self 没有 window 属性。抱歉问了一个不好的问题。
猜你喜欢
  • 2016-01-22
  • 1970-01-01
  • 1970-01-01
  • 2021-06-03
  • 1970-01-01
  • 1970-01-01
  • 2012-08-20
  • 1970-01-01
  • 2013-11-20
相关资源
最近更新 更多