LoginSignup
1
1

More than 5 years have passed since last update.

NSView で Swift の print() をやろうとしてもプリントダイアログが起動するぞ

Last updated at Posted at 2016-05-29

NSView のサブクラスでログを出そうといつものように print("hogehoge") みたいな感じにしてたらいきなりプリントダイアログが起動してしまいました。

お、おう。。
これって NSView が実装している方の print(sender: AnyObject?) メソッドが呼ばれちゃってるんですね。んなアホなと思いましたけど。

NSView
extension NSView {
    
    /* Printing action method (Note fax: is obsolete) */
    @warn_unqualified_access
    public func print(sender: AnyObject?)
    

対策として、NSView では Swift. を略さずに書いてあげればログ出力用のプリントを呼び出せるようになります。

class MyView: NSView {
    func method() {
        Swift.print("hogehoge")

        // print("hogehoge") // こっちだとプリントダイアログが起動してしまう
    }
}

追記:

macOS High Sierra / Swift 4では、印刷ダイアログのメソッド名の変更によりこの問題が解消されます。

1
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1