差分
ナビゲーションに移動
検索に移動
ページの作成:「NSTokenFieldクラスとは、テキストを視覚的に異なるトークンに変換するNSTextFieldの派生クラスである。 * 名前空間: AppKit * 継承元...」
NSTokenFieldクラスとは、テキストを視覚的に異なるトークンに変換するNSTextFieldの派生クラスである。
* 名前空間: AppKit
* 継承元 : NSTextField
== 概要 ==
NSTokenFieldクラスは、いわゆる「検索タグ」の入力欄であり、文字列の入力中に半角カンマを入力するごとに「トークン」に分割されるというものである。
分割された文字列はObjectValueメソッド(戻り値NSArray)で取得できる。
基本的にはNSTextFieldと同じようだ。
<source lang="csharp">
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;
};
}
}
</source>
実行するとこんな感じ。
[[ファイル:NSTokenField.png|none]]
== 関連項目 ==
* [[Xamarin.Mac/NSTextFieldでリターンキーが押された際に処理をする]]
* [[Xamarin.Mac/NSTextFieldクラス]]
== 外部リンク ==
* https://developer.apple.com/documentation/appkit/nstokenfield
[[category: Xamarin.Mac]]
* 名前空間: AppKit
* 継承元 : NSTextField
== 概要 ==
NSTokenFieldクラスは、いわゆる「検索タグ」の入力欄であり、文字列の入力中に半角カンマを入力するごとに「トークン」に分割されるというものである。
分割された文字列はObjectValueメソッド(戻り値NSArray)で取得できる。
基本的にはNSTextFieldと同じようだ。
<source lang="csharp">
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;
};
}
}
</source>
実行するとこんな感じ。
[[ファイル:NSTokenField.png|none]]
== 関連項目 ==
* [[Xamarin.Mac/NSTextFieldでリターンキーが押された際に処理をする]]
* [[Xamarin.Mac/NSTextFieldクラス]]
== 外部リンク ==
* https://developer.apple.com/documentation/appkit/nstokenfield
[[category: Xamarin.Mac]]