我有一個NSTokenField在按回車鍵創建令牌。我想限制此字段中的令牌數量。舉個例子,用戶應該被允許一個接一個地輸入2個令牌。之後,不應允許用戶設置令牌,也不允許用戶進一步搜索。總之,用戶應該在2個令牌後被阻塞。如何限制NSTokenField中的令牌數量?
任何人都可以幫助我實現這個嗎?
感謝提前:)
我有一個NSTokenField在按回車鍵創建令牌。我想限制此字段中的令牌數量。舉個例子,用戶應該被允許一個接一個地輸入2個令牌。之後,不應允許用戶設置令牌,也不允許用戶進一步搜索。總之,用戶應該在2個令牌後被阻塞。如何限制NSTokenField中的令牌數量?
任何人都可以幫助我實現這個嗎?
感謝提前:)
如果您保存令牌分貝,你可以指望的特定用戶ID的行數,並添加一個if語句將其限制在2
將該溶液在2份分爲:
-(NSArray *)tokenField:(NSTokenField *)tokenField shouldAddObjects:(NSArray *)tokens atIndex:(NSUInteger)index
{
//limit the tokens
if(self.tokensLimit)
{
NSArray * tokensArray = [_tokenField objectValue];
if([tokensArray count] > 0)
{
if([tokens isEqualToArray:tokensArray])
{
return tokens;
}
else if([tokensArray count]>=self.tokensLimit)
{
return @[];
}
else if([tokens count]>0)
{
tokens = [tokens subarrayWithRange:NSMakeRange(0, MIN([tokens
count], self.tokensLimit))];
}
else
return @[];
}
else
{
tokens = [tokens subarrayWithRange:NSMakeRange(0, MIN([tokens count], self.tokensLimit))];
}
}
return tokens;
}
其中tokensLimit是int> 0 委託覆蓋了所有的情況下,像通過複製/粘貼,完成列表,拖動&下降,手寫等加入令牌..
這個其他代表涵蓋用戶寫的字符串,然後點擊「TAB」
- (BOOL)control:(NSControl *)control isValidObject:(id)object
{
if(self.tokensLimit)
{
NSArray * tokensArray = [_tokenField objectValue];
tokensArray = [tokensArray subarrayWithRange:NSMakeRange(0, MIN([tokensArray count], self.tokensLimit))];
[_tokenField setObjectValue:tokensArray];
}
return YES;
}
感謝您的回答,但它不是對完成列表的情況。限於令牌字段中存在的令牌。我想限制NSTokenField實例的objectValue。 ObjectValue包含所選標記的數量。 –
@AbdulNaveed我認爲blo是在這裏的東西,爲什麼你不跟蹤什麼時候完成添加,然後開始沒有返回任何可能的完成 –
可以同步發佈一些代碼?儘可能多的理解,你可以做一些事情,比如計數行數,並添加一個if語句,使其大於或等於2...if($ count> = 2){//做點什麼}' –