SSブログ

NSTextView [ASOC]

NSTextView class


NSTextViewImage.png


NSTextView_2.png


 


 


(2020/5/5更新)


 


 

(* プロパティの作成 *)

 

property TextView1 : missing value

 

    テキストビューのコントロール用

 

(* テキストの変更 *)

 

TextView1's setString_("Text")                        --|テキストの変更|

 

    表示するテキストを入れ替えます。

 

(* テキストの読み込み *)

 

set ans to TextView1's textStorage()                 --|テキストの取得|

 

    C言語テキストなので、外に出力(display dialog など)する場合は as textでテキスト化が必要

 

(* テキスト選択の許可 *)

 

TextView1's setSelectable_(true)                                              -- |フィールド選択の許可|

TextView1's setSelectable_(false)                                            -- |フィールド選択の不許可|

 

    フィールドの選択可能かの設定。すでに選択されている場合は、設定が反映されないので注意。

 

(* テキストの編集を許可 *)

 

TextView1's setEditable_(true)                                                -- |編集の可能かを許可|

TextView1's setEditable_(false)                                              -- |編集の可能かを不許可|

 

    フィールド内のテキストの編集を許可するかの設定。

 

(* スクロールバーの表示非表示を設定 *)

 

scrollview1's setHasVerticalScroller_(true)                 -- |垂直スクロールバーの表示設定|

scrollview1's setHasHorizontalScroller_(false)     -- |水平スクロールバーの表示設定|

 

    ※これはテキストビューではなくスクロールビューに属します。

 

(* 枠の表示を設定 *)

 

scrollview1's setBorderType_(0)                                             -- |枠無し|

scrollview1's setBorderType_(1)                                             -- |枠有り|

 

    ※これはテキストビューではなくスクロールビューに属します。

 

(* リサイズ時の大きさ追跡設定 *)

 

TextView1's setAutoresizingMask_(18)                                 -- |編集の可能かを許可|

 

    親ビューがリサイズ(大きさ変更)された場合に自動的に変更すル設定をします。

setAutoresizingMask_(resizeOption)

 

 

NSViewNotSizable

ビューのサイズを変更しない。 NSViewNotSizable = 0

NSViewMinXMargin

スーパービューとの間の左余白を柔軟にする。 NSViewMinXMargin = 1

NSViewMaxXMargin

スーパービューとの間の右余白を柔軟にする。 NSViewMaxXMargin = 4

NSViewMinYMargin

スーパービューとの間の下余白を柔軟にする。 NSViewMinYMargin = 8

NSViewMaxYMargin

スーパービューとの間の上余白を柔軟にする。 NSViewMaxYMargin = 32

NSViewWidthSizable

ビューの幅を柔軟にする。 NSViewWidthSizable = 2

NSViewHeightSizable

ビューの高さを柔軟にする。 NSViewHeightSizable = 16

柔軟場所のビットマップ =  ([][][][?][][][])bit

 

    resizeOption : 44 ... 左側固定 伸縮なし (10進数)

41 ... 右側固定 伸縮なし

13 ... 上側固定 伸縮なし

37 ... 下側固定 伸縮なし

12 ... 左上角固定 伸縮なし

  9 ... 右上角固定 伸縮なし

36 ... 左下角固定 伸縮なし

33 ... 右下角固定 伸縮なし

10 ... 上・右・左で固定 幅のみ伸縮許可

34 ... 下・右・左で固定 幅のみ伸縮許可

20 ... 上・下・左で固定 縦のみ伸縮許可

17 ... 上・下・右で固定 縦のみ伸縮許可

18 ... 上・下・左・右固定 縦・横の伸縮許可

注意)親ビューでsetFlipped_(true) 命令をしていた場合は座標の天地が逆になっているので、

  オートサイジングの指示も天地を逆にしなければならない!

 

 

 

新規作成

 

 

(* 基本的なテキストビューを新規作成します *)

 

property NSScrollView : class "NSScrollView"

property NSTextView : class "NSTextView"

 

(* 表示させる大きさの設定 *)

set {x,y,w,h} to {10,10,250,150}

(* スクロールビューを作成(まだ貼付けていません) *)

set theRect to current application's NSMakeRect(x,y,w,h)

set scrollview1 to NSScrollView's alloc()'s initWithFrame_(theRect)

tell scrollview1

    setBorderType_(0)

    setHasVerticalScroller_(true)

    setHasHorizontalScroller_(false)

    setAutoresizingMask_(18) --| オートリサイズ : 天地左右固定・高さ幅伸縮 = 18 |

end tell

(* テキストビューを作成(まだ貼付けていません) *)

set theTextView1 to NSTextView's alloc()'s initWithFrame_(theRect)

tell theTextView1

    setMinSize_(current application's NSMakeSize(0, h))

    setMaxSize_(current application's NSMakeSize(10000,10000))

    setVerticallyResizable_(true)

    setHorizontallyResizable_(false)

    setAutoresizingMask_(2--| オートリサイズ : 幅を伸縮 = 2 |

    textContainer()'s setContainerSize_(current application's NSMakeSize(w, 10000))

end tell

theTextView1's textContainer's setWidthTracksTextView_(true)

(* テキストビューをスクロールビューにドキュメントとして貼り付ける *)

scrollview1's setDocumentView_(theTextView1)

(* 作成したスクロールビューをメインのウインドウのコンテンツビューに貼り付ける *)

theWindow's contentView()'s addSubview_(scrollview1)

 

(* ウインドウの優先度などの設定をしています *)

theWindow's makeKeyAndOrderFront_(missing value)

theWindow's makeFirstResponder_(theTextView1)

 

    テキストコンテナを持つテキストビューをスクロールビューに貼り付け、メインのウインドウのコンテンツビュー

    貼り付けています。

 


コメント(0) 
共通テーマ:パソコン・インターネット

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。
NSButtonNSPopupButton class ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。