Подсказка для изменения имен файлов обеспечивается программой xdg-user-dirs-gtk-update , которая работает очень рано в процессе входа в систему GnomeDisplayManager.
Эта программа смотрит на файл/etc/xdg/user-dirs.conf для некоторых опций. Это может быть отключено флагом в том файле.
Это может также быть отключено на основе в расчете на пользователя путем создания/редактирования подобного файла в пользователях .config каталог.
[еще 114] информация может быть найдена в http://www.freedesktop.org/wiki/Software/xdg-user-dirs , хотя имена файлов, используемые, там могло бы сбивать с толку на первый взгляд.
Обратите внимание на то, что каталоги, содержащие эти конфигурационные файлы, могут быть где-то в другом месте. Обратитесь к веб-странице для получения дополнительной информации
Внимание всем, кто сам сталкивается с этой проблемой: мне удалось добиться правильного поведения, создав экземпляр ABPersonViewController в viewDidLoad ( ) , как показано ниже:
Как и раньше, вот мой метод делегата ABPeoplePickerNavigationController:
- (BOOL) peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person
{
BOOL returnState = NO;
PersonViewController *personView = [[PersonViewController alloc] init];
[peoplePicker pushViewController:personView animated:YES];
[personView displayContactInfo:person];
[personView release];
return returnState;
}
Вот мой файл заголовка PersonViewController.h (делегат ABPersonViewController):
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import <AddressBookUI/AddressBookUI.h>
@interface PersonViewController : UIViewController <ABPersonViewControllerDelegate>
{
ABPersonViewController *personController;
}
- (void) displayContactInfo: (ABRecordRef)person;
@end
Наконец, вот реализация делегата (PersonViewController.m):
#import "PersonViewController.h"
@implementation PersonViewController
- (void) viewDidLoad
{
}
- (void) viewDidUnload
{
[personController release];
}
- (void) displayContactInfo: (ABRecordRef)person
{
personController = [[ABPersonViewController alloc] init];
[personController setDisplayedPerson:person];
[personController setPersonViewDelegate:self];
[personController setAllowsEditing:NO];
personController.addressBook = ABAddressBookCreate();
personController.displayedProperties = [NSArray arrayWithObjects:
[NSNumber numberWithInt:kABPersonPhoneProperty],
nil];
[self setView:personController.view];
}
- (BOOL) personViewController:(ABPersonViewController*)personView shouldPerformDefaultActionForPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifierForValue
{
// This is where you pass the selected contact property elsewhere in your program
[[self navigationController] dismissModalViewControllerAnimated:YES];
return NO;
}
@end
Надеюсь, это окажется кому-то полезным. Интерфейс пользовательского интерфейса AddressBook был немного сложным для меня, чтобы понять (хотя я новичок в разработке iPhone, поэтому я