0

ビューベースの NSOutlineView があり、アイテムを編集可能にする作業を行っています。アイテムをクリックして編集すると、テキスト全体を選択するのではなく、クリックした挿入ポイントから開始されます。Enter/Return キーを押して編集すると、テキスト全体が選択されます。

私のコードを、この問題のない TableViewPlayground サンプルと比較しても、大きな違いは見つかりませんでした。私が見つけた唯一の違いは、サンプルがバインディングを使用していることでしたが、その変更を試みたところ、役に立ちませんでした。

outlineView:viewForTableColumn:item:私のセル ビューのテキスト ビューには、ビュー コントローラーがデリゲートとして設定されています (確実に再設定することもできます) が、control:textShouldBeginEditing:呼び出されることはありません。そこからテキストを選択できるのではないかと思いました。

クリックして編集するときにテキストを自動的に選択するためにできることはありますか? テキストを手動で選択できるように、編集セッションの開始時に通知を受ける別の方法はありますか?

4

2 に答える 2

1

MyTextFieldクラスを拡張するという名前のカスタム クラスを作成しNSTextFieldます。

class MyTextField: NSTextField {

    override func mouseDown(with event: NSEvent) {
        currentEditor()?.selectAll(self)
    }
}

ストーリーボードに移動し、NSTextFieldコントロールのクラスを設定します。終わり。ここに画像の説明を入力

于 2018-04-28T12:21:23.003 に答える