「Xamarin.MacでNSTokenFieldクラス」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
imported>Administrator
(ページの作成:「NSTokenFieldクラスとは、テキストを視覚的に異なるトークンに変換するNSTextFieldの派生クラスである。 * 名前空間: AppKit * 継承元...」)
 
imported>Administrator
(Administrator がページ「Xamarin.Mac/NSTokenFieldクラス」を「Xamarin.MacでNSTokenFieldクラス」に移動しました)
 
(同じ利用者による、間の2版が非表示)
2行目: 2行目:
  
 
* 名前空間: AppKit
 
* 名前空間: AppKit
* 継承元 : NSTextField
+
* 継承元 : [[Xamarin.Mac/NSTextFieldクラス|NSTextField]]
  
 
== 概要 ==
 
== 概要 ==
NSTokenFieldクラスは、いわゆる「検索タグ」の入力欄であり、文字列の入力中に半角カンマを入力するごとに「トークン」に分割されるというものである。
+
NSTokenFieldクラスは、いわゆる「[[検索タグ]]」の入力欄を簡単に搭載できるという代物である。[[文字列]]の入力中に[[半角カンマ]]を入力するごとに[[配列]]に分割される。
 
分割された文字列はObjectValueメソッド(戻り値NSArray)で取得できる。
 
分割された文字列はObjectValueメソッド(戻り値NSArray)で取得できる。
基本的にはNSTextFieldと同じようだ。
+
基本的には[[NSTextField]]と同じようだ。
 
<source lang="csharp">
 
<source lang="csharp">
 
     public partial class ViewController : NSViewController
 
     public partial class ViewController : NSViewController
50行目: 50行目:
 
== 外部リンク ==
 
== 外部リンク ==
 
* https://developer.apple.com/documentation/appkit/nstokenfield
 
* https://developer.apple.com/documentation/appkit/nstokenfield
 +
* https://developer.xamarin.com/api/type/MonoMac.AppKit.NSTokenField/
  
 
[[category: Xamarin.Mac]]
 
[[category: Xamarin.Mac]]

2019年5月22日 (水) 05:11時点における最新版

NSTokenFieldクラスとは、テキストを視覚的に異なるトークンに変換するNSTextFieldの派生クラスである。

概要[編集 | ソースを編集]

NSTokenFieldクラスは、いわゆる「検索タグ」の入力欄を簡単に搭載できるという代物である。文字列の入力中に半角カンマを入力するごとに配列に分割される。 分割された文字列はObjectValueメソッド(戻り値NSArray)で取得できる。 基本的にはNSTextFieldと同じようだ。

    public partial class ViewController : NSViewController
    {
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            // NSTokenFieldはStoryboardで貼り付けてある前提。
            _tokenField.DoCommandBySelector = (control, textView, commandSelector) => 
            {
                if (commandSelector.Name == "insertNewline:")
                { // ここにエンターキーが押された時

                    // NSTextFieldと同じくStringValueで1つの文字列として取得できる
                    Console.WriteLine($"str: {_tokenField.StringValue}");

                    // NSTokenFieldではObjectValueで分割された文字列も取得できる
                    var tokenArray = _tokenField.ObjectValue as NSArray;
                    for (nuint i = 0; i < tokenArray.Count; i++)
                    {
                        Console.WriteLine("  {0} = {1}", i, tokenArray.GetItem<NSString>(i));
                    }

                    return true;
                }

                // イベントをキャンセルする
                return false;
            };
        }
    }

実行するとこんな感じ。

NSTokenField.png

関連項目[編集 | ソースを編集]

外部リンク[編集 | ソースを編集]