我已将其添加ABPeoplePickerNavigationController
到我的第一个视图控制器中.我希望当我选择一个联系人时显示要在其他视图控制器中显示的信息,但我正在尝试使用我的代码,这在我点击联系人时不会显示.这只会打开联系人到本机应用程序ABPeoplePickerNavigationController
.
var people = ABPeoplePickerNavigationController()
var addressBook: ABAddressBookRef?
func extractABAddressBookRef(abRef: Unmanaged<ABAddressBookRef>!) -> ABAddressBookRef? {
if let ab = abRef {
self.view.addSubview(people.view)
return Unmanaged<NSObject>.fromOpaque(ab.toOpaque()).takeUnretainedValue()
}
return nil
}
Run Code Online (Sandbox Code Playgroud)
我试过这个功能
func peoplePickerNavigationController(peoplePicker: ABPeoplePickerNavigationController!,didSelectPerson person: ABRecordRef!) {
var unmanagedEmails = ABRecordCopyValue(people, kABPersonEmailProperty)
let emailObj: ABMultiValueRef = Unmanaged.fromOpaque(unmanagedEmails.toOpaque()).takeUnretainedValue() as NSObject as ABMultiValueRef
var index = 0 as CFIndex
var unmanagedEmail = ABMultiValueCopyValueAtIndex(emailObj, index)
var emailAddress:String = Unmanaged.fromOpaque(unmanagedEmail.toOpaque()).takeUnretainedValue() as NSObject as String
println(emailAddress)
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
我几乎要绝望了,因为我现在正在寻找解决方案.
问题很简单:
直到第三个方面的解决方案众所周知:
- (IBAction)importFromAddressBook
{
ABPeoplePickerNavigationController* picker = [[ABPeoplePickerNavigationController alloc] init];
picker.peoplePickerDelegate = self;
[self presentModalViewController:picker animated:YES];
[picker release];
}
- (void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker
{
[self dismissModalViewControllerAnimated:YES];
}
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController*)peoplePicker
shouldContinueAfterSelectingPerson:(ABRecordRef)person
{
[peoplePicker setDisplayedProperties:[NSArray arrayWithObject:[NSNumber numberWithInt:kABPersonEmailProperty]]];
return YES;
}
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker
shouldContinueAfterSelectingPerson:(ABRecordRef)person
property:(ABPropertyID)property
identifier:(ABMultiValueIdentifier)identifier
{
//===PROBLEM=== Now I do have a mail address and I want to have a phone number right afterwards.
//Something like this would be straightforward, but the view does not change this …
Run Code Online (Sandbox Code Playgroud) 我必须使用来自我的AD域中的所有人基于brililant ASPTokenInput填充我的自动完成PeopleEditor控件.反映PeopleEditor在他们的Active Directory搜索引擎中显示了一个真正的混乱,所有可能有用的类都是内部的.
我的测试方法工作正常,但我需要从AD(而不是sharepoint站点)的所有用户填充我的列表:
public string GetUsers(string filter)
{
var spWeb = SPContext.Current.Web;
SPUserCollection allusers = spWeb.AllUsers;
List<SPUser> users = allusers.Cast<SPUser>().ToList();
var query = from spUser in users.Select(usr => new {id = usr.ID, name = usr.Name})
.Where(p => p.name.IndexOf(filter, StringComparison.InvariantCultureIgnoreCase) >= 0)
select new {id = spUser.id.ToString(), spUser.name};
return new JavaScriptSerializer().Serialize(query);
}
Run Code Online (Sandbox Code Playgroud)
我该如何查询这样的活动目录?是否可以从sharepoint本身检索所有AD连接设置?我只需要id和用户名来填充我的下拉列表将此转换为SPUserCollection是另一个大问题.
使用像这样的内置SP方法会很棒:
[SubsetCallableExcludeMember(SubsetCallableExcludeMemberType.UnsupportedSPType)]
public static IList<SPPrincipalInfo> SearchWindowsPrincipals(SPWebApplication webApp, string input, SPPrincipalType scopes, int maxCount, out bool reachMaxCount)
Run Code Online (Sandbox Code Playgroud) 当人们选择器从弹出的浏览窗口将值返回到主窗体时,是否有人试图尝试触发jquery更改事件?我在jquery语句中尝试了几个标签,但似乎没有任何效果.(SP 2010)
<wssawc:PeopleEditor AllowEmpty="false" AcceptAnyEmailAddresses="true" ValidateResolvedEntity="true"
ShowButtons="true" ShowDataValidationErrorBorder="true" ShowEntityDisplayTextInTextBox="true"
ShowErrorPlaceHolder="true" ValidatorEnabled="true" MultiSelect="false" ID="primaryOwnerPicker"
runat="server" SelectionSet="User" Width="12em" AllowTypeIn="false" DoPostBackOnResolve="false"
EnableBrowse="true" ForceClaims="true" Title="Primary Owner People Picker" />
Run Code Online (Sandbox Code Playgroud)
我试过了
$("textarea[title='Primary Owner People Picker']").change(function ()
{
alert("here");
});
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激...
在iOS 8中,不推荐使用以下内容:
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController*)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person
现在我们应该使用:
- (无效)peoplePickerNavigationController:didSelectPerson:
但是这个方法会在第一次选择之后自动解除人员选择器,旧版本没有.我有一个例程,需要记录用户逐个选择的每个名称.我可以在每次选择后重新显示人员选择器,但它会以第一个名称重新开始联系人列表.
我希望我能正确解释这一点.任何人都知道如何在iOS 8中保持peoplepickernavigationcontroller不像过去那样在ios7中自动解散?
我在我的aspx页面中使用SharePoint的人员选择器用户控件.我已将人员选取器控件的AllowEmpty属性设置为false.
但是,控件还没有进行必要的现场验证.我不想明确使用必需的字段验证控件来验证它.任何见解?
此致,Raghuraman.V
我已经修改了我的MOSS 2007配置以成功查询给定的目标AD.我想在PeopleEditor控件中显示一些自定义LDAP字段(例如country),并允许用户搜索这些字段.有人能指出我有用的资源/教程显示如何做到这一点?
谢谢,MagicAndi.
我正在尝试使用下面的代码设置联系人图像.我没有看到任何错误,图像也没有保存到地址簿中的联系人条目.请帮忙!我一定做错了什么...
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person
{
[abcontroller setDisplayedPerson:person];
UIImage *im = [UIImage imageNamed:@"image1.jpg"];
NSData *dataRef = UIImagePNGRepresentation(im);
CFErrorRef error;
ABAddressBookRef addressBook = ABAddressBookCreate();
NSLog(@"Error:",error);
if (ABPersonSetImageData(person, (CFDataRef)dataRef, &error))
{
NSLog(@"Set contact photo %@", error);
if (ABAddressBookHasUnsavedChanges(addressBook))
{
NSLog(@"Changes made to address book");
}
else {
NSLog(@"No changes made to address book");
}
if (ABAddressBookSave(addressBook, &error))
{
NSLog(@"Saved");
}
else {
NSLog(@"Not saved");
}
}
else {
NSLog(@"Error saving contact photo %@", error);
}
ABAddressBookSave(addressBook, &error);
[self dismissModalViewControllerAnimated:YES];
return NO;
} …
Run Code Online (Sandbox Code Playgroud) 我正在尝试在SharePoint网站上的自定义页面上的页面加载时执行一些JavaScript(它将使用当前用户填充人员选择器)。问题在于代码也要在回发时执行,我不希望这样做,因为它将重置对人员选择器的任何更改。
我试着用if(!IsPostBack)
都没有用。一切都错了,给了
SCRIPT5009:'IsPostBack'未定义。
我在网上找不到任何可以帮助您解决此问题的信息。有任何想法吗?谢谢
我正在使用SharePoint 2007.我在layouts文件夹中有一个自定义的aspx页面,其中包含一个people picker(PeopleEditor
)控件.
用户可以n
在控件中输入nunmber个用户.我想使用javascript从人员选择器控件中撤回用户的电子邮件,有人可以帮忙.
我创建了一个可视化WebPart包含一个人编辑器控件来选择管理器名称(实际上只有一个名称).控件工作正常,但我想在按钮单击期间使用代码将特定值存储到变量.我怎么能做到这一点?任何帮助?
peoplepicker ×11
sharepoint ×7
addressbook ×3
c# ×2
iphone ×2
jquery ×2
moss ×2
asp.net ×1
contacts ×1
debugging ×1
ios ×1
ios8 ×1
ipad ×1
javascript ×1
objective-c ×1
swift ×1
uiimage ×1
validation ×1