「Xamarin.MacでNSTokenFieldクラス」の版間の差分
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クラスは、いわゆる「[[検索タグ]]」の入力欄を簡単に搭載できるという代物である。[[文字列]]の入力中に[[半角カンマ]]を入力するごとに[[配列]]に分割される。 | |
分割された文字列はObjectValueメソッド(戻り値NSArray)で取得できる。 | 分割された文字列はObjectValueメソッド(戻り値NSArray)で取得できる。 | ||
− | + | 基本的には[[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の派生クラスである。
- 名前空間: AppKit
- 継承元 : 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;
};
}
}
実行するとこんな感じ。