根据第 2 版的官方常见问题解答,根据用户选择的共享者自定义您的文本/内容,您需要:
- SHKActionSheet 的子类并覆盖dismissWithClickedButtonIndex
- 在配置器中设置新的子类名称(在 (Class)SHKActionSheetSubclass 中返回它;)。
它对我不起作用。但更重要的是:我把
NSLog(@"%@", NSStringFromSelector(_cmd));
在 (Class)SHKActionSheetSubclass 中查看它是否被调用。它不是 ;(( 所以 ShareKit 不关心这个配置选项......以前有人用过这个吗?
谢谢你!
UPD1:我在这里放了一些代码。
这是我的子类 ITPShareKitActionSheet 的样子。根据我需要覆盖的文档dismissWithClickedButtonIndex:animated:
,但是为了跟踪我的类是否被调用,我还覆盖了actionSheetForItem:
:
+ (ITPShareKitActionSheet *)actionSheetForItem:(SHKItem *)item
{
NSLog(@"%@", NSStringFromSelector(_cmd));
ITPShareKitActionSheet *as = (ITPShareKitActionSheet *)[super actionSheetForItem:item];
return as;
}
- (void)dismissWithClickedButtonIndex:(NSInteger)buttonIndex animated:(BOOL)animate
{
NSLog(@"%@", NSStringFromSelector(_cmd));
NSString *sharersName = [self buttonTitleAtIndex:buttonIndex];
[self changeItemForService:sharersName];
[super dismissWithClickedButtonIndex:buttonIndex animated:animate];
}
当用户按下“共享”按钮时,这是我在代码中创建操作表的操作:
- (IBAction)shareButtonPressed:(id)sender
{
// Create the item to share
SHKItem *item = [SHKItem text:@"test share text"];
// Get the ShareKit action sheet
ITPShareKitActionSheet *actionSheet = [ITPShareKitActionSheet actionSheetForItem:item];
// Display the action sheet
[actionSheet showInView:self.view]; // showFromToolbar:self.navigationController.toolbar];
}
当我运行此代码时,按“共享”按钮并选择我希望在日志中获得两行的任何共享者:
actionSheetForItem:
- 创建了自定义操作表dismissWithClickedButtonIndex:animated:
- 处理操作表按下按钮的自定义机制被调用。
但由于某种原因,我只记录了第一行。